“import *”到底导入什么?
在Python中,到底做了什么import *进口?__init__.py在包含的文件夹中找到? 例如是否需要声明from project.model import __init__,或者是from project.model import *充足的? 答案 的"优点"from xyz import *与其他形式的进口不同的是,它进口一切 (好吧,几乎…[参见下面的(a)]所有内容)从当前模块下的指定模块开始。without prefixing them with the module’s name。 >>> from math import * >>>pi 3.141592653589793 >>>sin(pi/2) >>>1.0 This practice (of importing * into the current namespace) is however discouraged因为它 提供了命名空间冲突的机会(假设您在导入之前有一个变量名称 pi) 如果导入的对象数量很大,效率可能会很低 没有明确记录变量/方法/类的起源(最好有程序的"自我文档"以供将来访问代码) 因此,通常我们将这种导入*实践限制为临时测试等。设计的 导入import *。 explicitly import a few objects only >>>from math import pi >>>pi >>>3.141592653589793 >>> sin(pi/2) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'sin' is not defined 或者import the module under its own namespace(或其别名,特别是如果这是一个长名称,并且程序多次引用其对象)...