猿问

为什么Python在导入模块时运行它,以及如何阻止它?

为什么Python在导入模块时运行它,以及如何阻止它?

我构建了一个Python程序,它可以两种方式运行:第一种是调用“pythonmain.py”,它以友好的方式提示用户输入,然后通过程序运行用户输入。另一种方法是调用“pythonbatch.py”。-档案-“这将通过所有友好的输入收集,并在一次运行程序运行整个文件的价值的输入。

问题是,当我运行“batch.py”时,它从“main.py”中导入一些变量/方法/etc,并且在运行以下代码时:

import main

在程序的第一行,它会立即出错,因为它试图在“main.py”中运行代码。

如何阻止Python运行我正在导入的“main”模块中包含的代码?


POPMUISE
浏览 2196回答 3
3回答

慕容3067478

因为这正是Python的工作方式-关键字,例如class和def是非声明..相反,他们是真实陈述都被执行了。如果它们没有被执行,您的模块将是.。空:-)无论如何,惯用的方法是:# stuff to run always here such as class/defdef main():     passif __name__ == "__main__":    # stuff only to run when not called via 'import' here    main()看见是什么if __name__ == "__main__"为?它确实需要对模块进行源代码控制。import但是艾德。编码愉快。
随时随地看视频慕课网APP

相关分类

Python
我要回答