这是什么,为什么应该包括一个 if 声明?
if __name__ == "__main__":
print("Hello, World!")
如果你试图关闭一个问题,有人应该使用这个字符,而不是,考虑关闭作为一个复制为什么Python在我进口时运行我的模块,而我如何停止它? 问题,有人只是没有呼叫任何功能,或者错误地等待一个名为主的功能将自动作为一个输入点,使用为什么没有主()功能运行。
这是什么,为什么应该包括一个 if 声明?
if __name__ == "__main__":
print("Hello, World!")
如果你试图关闭一个问题,有人应该使用这个字符,而不是,考虑关闭作为一个复制为什么Python在我进口时运行我的模块,而我如何停止它? 问题,有人只是没有呼叫任何功能,或者错误地等待一个名为主的功能将自动作为一个输入点,使用为什么没有主()功能运行。
当前回答
当您输入某种具有此条件的代码时,它将返回虚假(进口代码内),但将返回正确的代码将运行。
其他回答
简单的答案是下方写的代码,如果名称 ==“主”:如果您将其输入到另一个文件,则不会执行。
当您执行模块(源文件)时,条件是否检查模块是否直接被召唤或从另一个源文件被召唤。
如果直接呼吁执行,则模块名称将设置为“主”,然后在如果区块内的代码将执行。
原因为
if __name__ == "__main__":
main()
首先要避免进口锁问题,即将直接输入代码,您想要主()运行,如果您的文件被直接提交(这是 __name__ ==“__main__”案例),但如果您的代码被进口,则进口商必须从真正的主要模块输入代码,以避免进口锁问题。
一个副作用是,你自动登录到一个方法,支持多个输入点. 你可以运行你的程序使用主要()作为输入点,但你不需要. 虽然 setup.py 等待主要(),其他工具使用替代输入点. 例如,运行你的文件作为一个 gunicorn 过程,你定义一个 app() 函数而不是一个主要()。
如果 __name__ ==“__main__”是当脚本从(说)命令线运行时运行的部分,使用像 python myscript.py 这样的命令。
简单地说,这是运行文件的输入点,就像C编程语言的主要功能一样。