我有以下代码(与CPython的3.4上运行):
基本上,红色箭头解释我是如何预计进口工作:h为test2的导入之前定义。 所以,当test2的进口TEST1它不是一个空的模块了(与H)和H为test2的希望嘛。
我认为,这个矛盾http://effbot.org/zone/import-confusion.htm
任何提示?
我有以下代码(与CPython的3.4上运行):
基本上,红色箭头解释我是如何预计进口工作:h为test2的导入之前定义。 所以,当test2的进口TEST1它不是一个空的模块了(与H)和H为test2的希望嘛。
我认为,这个矛盾http://effbot.org/zone/import-confusion.htm
任何提示?
什么你错过的是,事实上from X import Y
,并不仅仅进口Y
。 它首先导入模块X。 它在网页中提到:
从X进口A,B,C导入模块X,并且会在当前命名空间中给定对象的引用。 或者换句话说,你现在可以使用a和b和c在你的程序。
所以,这种说法:
from test import h
不停止进口,当它到达的定义h
。
让我们来更改文件:
test.py
h = 3
if __name__ != '__main__': #check if it's imported
print('I'm still called!')
...
当您运行test.py
,你会得到I'm still called!
之前的错误。
条件检查脚本是否是进口与否。 在你编辑的代码,如果你添加的条件下,你会print
,只有当它作为主要的脚本,而不是进口的脚本吧。
下面是一些帮助:
test2.j
-它不存在,只是还没有。 希望这可以帮助!