If I were to import some module called modx, how would that be different from saying
from modx import *
Wouldn't all the contents be imported from each either way? This is in python just to clarify.
If I were to import some module called modx, how would that be different from saying
from modx import *
Wouldn't all the contents be imported from each either way? This is in python just to clarify.
If you import somemodule
the contained globals will be available via somemodule.someglobal
. If you from somemodule import *
ALL its globals (or those listed in __all__
if it exists) will be made globals, i.e. you can access them using someglobal
without the module name in front of it.
Using from module import *
is discouraged as it clutters the global scope and if you import stuff from multiple modules you are likely to get conflicts and overwrite existing classes/functions.
If a
defines a.b
and a.c
...
import a
a.b()
a.c()
vs.
from a import b
b()
c() # fails because c isn't imported
vs.
from a import *
b()
c()
Note that from foo import *
is generally frowned upon since:
Common question with many faq's to answer... here is one: http://effbot.org/zone/import-confusion.htm
Essentially to answer your specific question the second form (from modx import *
) you get only the public items in modx