导入另一个Python文件会运行该文件,而不是实际导入它

时间:2019-07-26 20:02:48

标签: python

我有两个Python文件:一个是主文件(我要导入的文件),另一个是Turtle文件(我要导入主文件的文件)。我正在尝试从该主文件中检索一个变量以在我的Turtle文件中使用

当我尝试在Turtle文件上执行from main_file import variable时,它将运行整个主文件,而不是导入该单个变量。

我尝试执行以下操作:

1)

import main_file as this_file

2)

from main_file import *

但它们都不起作用。

我正在使用Python 3.7.3。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

这是正常行为。

  1. 导入模块实际上会运行其内容。除其他功能外,这还允许库在后台进行一些精美的操作,例如配置其组件。
  2. 从模块中仅导入一个(或一些)元素实际上可以运行整个过程。如果不是这种情况,如果要导入的元素需要从库中进行一些全局配置,Python将不会提示需要运行它,并且事情可能无法按预期进行。

为避免这种行为,所有仅在执行模块本身时才应运行的代码应包含在所谓的main语句内:

if __name__ == "__main__":
    # Code here will not run when just importing the module.

答案 1 :(得分:0)

在要导入的所有文件中使用以下代码段。

 if __name__ == '__main__':
     functionCall()
This should fix the issue.