我有两个Python脚本,一个测试类.py地址:
import numpy
zz = numpy
class Something(object):
def __init__(self):
self.xp = zz
还有一个测试脚本.py地址:
from testclass import Something
x = Something()
print(x.xp)
我预料到了测试脚本.py抛出一个错误,因为我认为testscript只导入类Something
(使用它的__init__
方法),而不是全局变量zz
。因此,考虑到这个问题,我的问题是,当从模块导入时,Python是否“运行”了模块文件中的所有内容?你知道吗
是的。执行时:
其效果与:
一般来说,Python解释器无法预先知道模块公开了哪些对象(除非在^{} 中显式地命名它们)。对于极端情况,请考虑以下几点:
a.py
:运行
from a import Foo
失败的几率为50%,因为a
模块对象可能有Foo
属性,也可能没有。你知道吗相关问题 更多 >
编程相关推荐