【发布时间】:2018-04-23 20:24:35
【问题描述】:
我很好奇当我们导入一个模块然后又导入另一个模块时会发生什么。所以我创建了两个模块:module1 和 module2。
模块1:
import random
print(random.randint(0,10))
print("module1 work")
模块2:
import module1
print("module2 work")
当我运行 module2 时,它给了我这个输出:
1
module1 work
module2 work
所以,当我导入module1 时,我决定确实导入了random。但是当我输入 Shell print(random.randint(0,10))时,它会抛出 NameError: name 'random' is not defined。所以random 不是从module1 导入的。但是这种情况下为什么module2会打印1,却没有抛出和Shell一样的错误呢?
【问题讨论】:
-
仅仅因为一个模块已经被执行并不一定意味着
module对象被绑定到全局命名空间中的一个名字。试试module1.random.randint(0,10)。
标签: python python-import