Skip to main content
 首页 » 编程设计

python之在 python 中导入模块时会发生什么

2025年05月04日16webabcd

我有以下用例:

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()”打印其内容)