什么是 Python 主函数?
主函数是任何程序的起点。 仅当主函数作为Python程序运行时才执行。 如果将其作为模块导入,它将不会运行main函数。
要理解这一点,请考虑以下代码
def main():
print ("hello world!")
print ("Guru99")
在这里,我们有两个打印,一个是在主函数定义的,打印“ Hello World”,另一张是独立的,打印“ Guru99”。 当您运行时:
- 仅打印“ Guru99”
- 而不会打印“ Hello World”。
这是因为我们没有声明调用函数 “if__name__== “__main__” 。
重要的是,在定义了main函数之后,您可以通过 “if__name__== “__main__” 调用代码,然后运行代码,只有这样,您才能获得输出“ hello world!”。 在编程控制台中。 考虑以下代码
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
在这种情况下,将打印Guru99。
- 当Python 解释器 读取 源文件 时,它将执行其中找到的所有代码。
- 当Python将“源文件” 作为主程序运行时 ,它将特殊变量(__name__)设置为(“ __main__”)。
- 当您执行main函数时,它将读取“ if”语句并检查__name__是否等于__main__。
- 在Python中,“ if__name __ ==” __main__“允许您将Python文件作为可 import 模块或独立程序运行。如果是import的时候,则__name__是不会等于’__main__’的,所以import时,不会执行main()
直接运行和导入的区别
要了解__name__变量的重要性,请考虑以下代码:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
直接运行:
- __name __ = __ main__
- if __name__ == “__main__”,会得到True,则将执行_main_中的脚本
结果如下图
导入为模块来使用
如果将上面的代码保存为MainFunction.py,并在别的程序中作为模块导入
import MainFunction
print("done")
- __name __ =模块的文件名
- if __name__ == “__main__”,会得到false,不会执行__main__中的脚本
执行代码后,它将判断if __name__ == “__main__”,但是此时__name__的值等于模块的文件名,所以导致main()不会执行。
顺便说一下
def main():
print("Hello World!")
main()
print("Guru99")