为什么从另一个python文件导入变量会运行该文件中的所有代码?

时间:2019-07-03 06:29:48

标签: python python-3.x python-import

我有一个名为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中的任何变量。我只想要一个变量而不运行文件。

1 个答案:

答案 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?