我有一个名为test1.py的文件,其中包含以下代码:
print("HELLO WORLD")
x=999
我还有一个名为test2.py的文件,其中包含以下代码:
from test1 import x
print(x,"hello!")
为什么会这样输出:
HELLO WORLD
999 hello!
为什么它要执行test1中的功能而不是仅仅给我变量x
?
在test.py中,我尝试过:
from test1 import x as a
print(a,"hello!")
这使我得到相同的输出。
预期结果:
999 hello!
实际结果:
HELLO WORLD
999 hello!
很抱歉,如果这是一个重复的问题-我只是找不到解决方案。
编辑:这被标记为较早的副本-一个问题:使用if __name__ == "__main__"
逻辑阻止我访问main中的任何变量。我只想要一个变量而不运行文件。
答案 0 :(得分:0)
模块在导入时执行。如果模块中包含您不想在导入时执行的代码,则可以使用if块ìf __name__ == "__main__"
包装该代码。
http://effbot.org/pyfaq/tutor-what-is-if-name-main-for.htm (位于Why is Python running my module when I import it, and how do I stop it? )