主函数是任何程序的起点。 仅当主函数作为Python程序运行时才执行。 如果将其作为模块导入,它将不会运行main函数。
要理解这一点,请考虑以下代码
def main():
print ("hello world!")
print ("Guru99")
在这里,我们有两个打印,一个是在主函数定义的,打印“ Hello World”,另一张是独立的,打印“ Guru99”。 当您运行时:
这是因为我们没有声明调用函数“if__name__== “__main__”。
重要的是,在定义了main函数之后,您可以通过“if__name__== “__main__”调用代码,然后运行代码,只有这样,您才能获得输出“ hello world!”。 在编程控制台中。 考虑以下代码
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
在这种情况下,将打印Guru99。
要了解__name__变量的重要性,请考虑以下代码:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
直接运行:
结果如下图
导入为模块来使用
如果将上面的代码保存为MainFunction.py,并在别的程序中作为模块导入
import MainFunction
print("done")
执行代码后,它将判断if __name__ == “__main__”,但是此时__name__的值等于模块的文件名,所以导致main()不会执行。
在Python 3中,您不需要使用if __name__== “__main__”。 以下代码也是同样的效果(直接执行会运行main,导入不会运行main)
def main():
print("Hello World!")
main()
print("Guru99")