我有以下用例:
a.py:
import b
import c
c.fun()
b.py:
def fun():
print 'b'
c.py:
def fun():
b.fun()
python a.py 不工作。它因 NameError: global name 'b' is not defined 而失败。
我对python中import的理解是在sys.modules中加了一个名字。如果是这种情况,那么 c.py 也应该看到模块 b。但显然情况并非如此。那么谁能解释一下导入模块时到底发生了什么。
谢谢。
请您参考如下方法:
模块 c.py 必须导入 b 才能使其正常工作... 导入模块时,它会被添加到仅在当前脚本范围内可用的全局字典中(使用“globals()”打印其内容)
