“import *”导入什么?
Python 中,“import *" 将指定模块中的所有内容导入到当前模块中。这允许直接访问导入的对象,而无需在它们前面加上模块名称前缀。
例如:
>>> from math import * >>> pi 3.141592653589793 >>> sin(pi/2) 1.0
陷入名称冲突之网
但是,不建议使用“*”导入“所有内容”,因为它可能会与现有变量或函数产生命名空间冲突。此外,如果导入大量对象,效率可能会很低。
显式导入与使用“*”导入
最好仅显式导入必要的对象:
>>> 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 math >>> math.pi 3.141592653589793 >>> import math as m >>> m.pi 3.141592653589793
“* 导入”的例外
在某些情况下,使用“”导入所有内容可能是合适的。例如,一些库提供了专门设计用于使用“”导入的子模块,并包含常用的常量和函数。
深入研究“*导入”机制
使用“import *”,导入以下对象:
子模块的微妙
与普遍看法相反, “from xyz import ”不导入子模块。子模块必须单独显式导入,例如“从 urllib.request 导入 ”。
以上是“import *”在 Python 中实际上是如何工作的?的详细内容。更多信息请关注PHP中文网其他相关文章!