为什么在Python中导入一个模块会执行所有的语句?

7 浏览
0 Comments

为什么在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这个指令,这个指令导致了所有代码被执行。

  1. 为什么会执行test1.py文件中的所有内容(当然不包括if __name__==__main__下的代码)?

  2. 如何只从test1中导入regions列表而不执行其他所有语句?

我不知道import的工作原理,因此我因为这个问题已经调试了3天。

0