PYTHON MAIN FUNCTION是任何程序的起点。当程序运行时,python解释器将顺序运行代码。仅当主函数作为Python程序运行时才执行。如果将其作为模块导入,它将不会运行main函数。
要理解这一点,请考虑以下代码
def main():
print(“ hello world!”)
print(“ 大话西游”)
在这里,我们得到了两张打印纸,一张是在主函数“ Hello World”中定义的,另一张是独立的,即“ 大话西游”的。当您运行函数def main()时:
- 仅打印“ 大话西游”
- 而不是代码“ Hello World”。
这是因为我们没有声明调用函数“ if__name __ ==” __main__“。
重要的是,在定义了main函数之后,您可以通过if__name __ ==“ __main__”调用代码,然后运行代码,只有这样,您才能获得输出“ hello world!”。在编程控制台中。考虑以下代码
def main():
print(“ hello world!”)
if __name__ ==“ __main__”:
main()
print(“ 大话西游”)
原因:
- 当Python解释器读取源文件时,它将执行其中找到的所有代码。
- 当Python将“源文件”作为主程序运行时,它将特殊变量(__name__)设置为具有值(“ __main__”)。
- 当您执行main函数时,它将读取“ if”语句并检查__name__是否等于__main__。
- 在Python中,“ if__name __ ==” __main__“允许您将Python文件作为可重用模块或独立程序运行。
__name__变量和Python模块
要了解__name__变量的重要性,请考虑以下代码:
def main():
print(“ hello world!”)
if __name__ ==“ __main__”:
main()
print(“ 大话西游”)
print(“内置变量名称的值是:”,__ name__)
现在考虑,将代码作为模块导入
import MainFunction
print("done")
这里是代码说明:
像C一样,Python使用==进行比较,而使用=进行赋值。Python解释器以两种方式使用main函数
直接运行:
- __name __ = __ main__
- 如果语句== True,则将执行_main_中的脚本
导入为模块
- __name __ =模块的文件名
- if语句== false,并且不会执行__main__中的脚本
执行代码后,它将使用“ if”检查模块名称。这种机制可确保主要功能仅在直接运行时才执行,而不在作为模块导入时才执行。
上面的示例是Python 3代码,如果要使用Python 2,请考虑以下代码
def main():
print “ Hello World!”
if __name __ ==“ __main__”:
main()
print “ 大话西游2”
在Python 3中,您不需要使用if__name。以下代码也有效
def main():
print(“ Hello World!”)
main()
print(“ 大话西游”)
注意:请确保在定义main函数之后,保留一些缩进,并且不要在def main():函数的正下方声明代码,否则会产生缩进错误。