Conditional based on whether or not a module is being used

MRAB python at mrabarnett.plus.com
Fri Mar 5 20:57:34 CET 2010


Pete Emerson wrote:
> In a module, how do I create a conditional that will do something
> based on whether or not another module has been loaded?
> 
> Suppose I have the following:
> 
> import foo
> import foobar
> 
> print foo()
> print foobar()
> 
> ########### foo.py
> def foo:
>     return 'foo'
> 
> ########### foobar.py
> def foobar:
>     if foo.has_been_loaded(): # This is not right!
>         return foo() + 'bar'      # This might need to be foo.foo() ?
>     else:
>         return 'bar'
> 
> If someone is using foo module, I want to take advantage of its
> features and use it in foobar, otherwise, I want to do something else.
> In other words, I don't want to create a dependency of foobar on foo.
> 
> My failed search for solving this makes me wonder if I'm approaching
> this all wrong.
> 
Look for its name in sys.modules, for example:

     'foo' in sys.modules



More information about the Python-list mailing list