import modx 和 from modx import * 有啥区别? [复制]
Posted
技术标签:
【中文标题】import modx 和 from modx import * 有啥区别? [复制]【英文标题】:What is the difference between import modx and from modx import *? [duplicate]import modx 和 from modx import * 有什么区别? [复制] 【发布时间】:2011-07-04 16:46:31 【问题描述】:如果我要导入一些名为 modx 的模块,那和说的有什么不同
from modx import *
不是所有的内容都从任何一种方式导入吗?这在 python 中只是为了澄清。
【问题讨论】:
【参考方案1】:如果您import somemodule
,包含的全局变量将通过somemodule.someglobal
提供。如果您 from somemodule import *
其所有全局变量(或在 __all__
中列出的变量,如果存在)将被设为全局变量,即您可以使用 someglobal
访问它们,而无需在其前面添加模块名称。
不鼓励使用from module import *
,因为它会使全局范围变得混乱,如果您从多个模块导入内容,您可能会遇到冲突并覆盖现有的类/函数。
【讨论】:
【参考方案2】:如果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 *
通常不受欢迎,因为:
-
它将事物放入全局命名空间,而无需您进行精细控制
它可能会导致冲突,由于所有东西都在全局命名空间中
它不清楚当前文件中实际定义的内容,因为它定义的内容列表可能会因导入的内容而异。
【讨论】:
【参考方案3】:需要回答许多常见问题的常见问题...这里有一个:http://effbot.org/zone/import-confusion.htm
基本上回答您的具体问题,第二种形式 (from modx import *
) 您只获得 modx 中的公共项目
【讨论】:
以上是关于import modx 和 from modx import * 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
html 示例MODX博客。请参阅:https://sepiariver.com/modx/creating-a-blog-in-modx/