为什么在Python中导入一个模块会执行所有的语句?
- 论坛
- 为什么在Python中导入一个模块会执行所有的语句?
7 浏览
为什么在Python中导入一个模块会执行所有的语句?
这是我的模块:
test1.py
regions=["a","b","c"] print "来自test1模块"
test2.py
from test1 import regions print "来自test2模块", regions
运行test2.py
$ python test2.py # 这是执行的输出结果 来自test1模块 来自test2模块 ['a', 'b', 'c']
我发现尽管我只从test1.py导入了regions列表,但是test1.py中的print语句被调用了。我没有使用import test1这个指令,这个指令导致了所有代码被执行。
- 为什么会执行test1.py文件中的所有内容(当然不包括if __name__==__main__下的代码)?
- 如何只从test1中导入regions列表而不执行其他所有语句?
我不知道import的工作原理,因此我因为这个问题已经调试了3天。