【发布时间】:2011-07-04 16:46:31
【问题描述】:
如果我要导入一些名为 modx 的模块,那和说的有什么不同
from modx import *
不是所有的内容都从任何一种方式导入吗?这在 python 中只是为了澄清。
【问题讨论】:
如果我要导入一些名为 modx 的模块,那和说的有什么不同
from modx import *
不是所有的内容都从任何一种方式导入吗?这在 python 中只是为了澄清。
【问题讨论】:
如果您import somemodule,包含的全局变量将通过somemodule.someglobal 提供。如果您 from somemodule import * 其所有全局变量(或在 __all__ 中列出的变量,如果存在)将被设为全局变量,即您可以使用 someglobal 访问它们,而无需在其前面添加模块名称。
不鼓励使用from module import *,因为它会使全局范围变得混乱,如果您从多个模块导入内容,您可能会遇到冲突并覆盖现有的类/函数。
【讨论】:
如果a 定义了a.b 和a.c...
import a
a.b()
a.c()
对比
from a import b
b()
c() # fails because c isn't imported
对比
from a import *
b()
c()
请注意,from foo import * 通常不受欢迎,因为:
【讨论】:
需要回答许多常见问题的常见问题...这里有一个:http://effbot.org/zone/import-confusion.htm
基本上回答您的具体问题,第二种形式 (from modx import *) 您只获得 modx 中的公共项目
【讨论】: