如果我要导入一些名为modx的模块,那么与说
有什么不同from modx import *
不是所有的内容都不是从每种方式导入的吗?这只是为了澄清而在python中。
答案 0 :(得分:36)
如果您import somemodule
可以通过somemodule.someglobal
获得所包含的全局变量。如果你from somemodule import *
所有的全局变量(或者__all__
中列出的全局变量)都将成为全局变量,即你可以使用someglobal
访问它们而不需要模块名称。< / p>
不鼓励使用from module import *
,因为它会使全局范围变得混乱,如果从多个模块导入内容,则可能会发生冲突并覆盖现有的类/函数。
答案 1 :(得分:17)
如果a
定义a.b
和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()
请注意,from foo import *
通常不赞成:
答案 2 :(得分:0)
许多常见问题解答的常见问题......这里有一个:http://effbot.org/zone/import-confusion.htm
基本上回答你的具体问题第二种形式(from modx import *
)你只得到modx中的公共项目