Python 主函数和方法示例:理解 def Main()

什么是 Python 主函数?

Python 主函数是任何程序的起点。当程序运行时,Python 解释器会按顺序执行代码。主函数仅在作为 Python 程序运行时执行。如果它被导入为模块,则不会运行主函数。

Python 中的 def main() 函数是什么?要理解这一点,请考虑以下示例代码

def main() 示例 1

def main():
     print ("Hello World!")
print ("Guru99")

Python Main Function

在这里,我们有两个打印语句——一个是定义在主函数内的“Hello World!”,另一个是独立的“Guru99”。 当你运行 def main () 函数时

  • 只打印“Guru99”
  • 而不是“Hello World!”代码

这是因为我们没有声明调用 function “if__name__== “__main__”.

定义主函数后,必须通过 if__name__== “__main__” 调用代码并运行它,这样你才能在编程控制台中看到“hello world!”的输出。请看下面的代码

def main() 示例 2

def main():
    print("Hello World!")

if __name__ == "__main__":
    main()

print("Guru99")


这种情况下会打印 Guru99。

Python Main Function

这是解释:

  • 当 Python 解释器读取源文件时,它将执行其中找到的所有代码。
  • 当 Python 将“源文件”作为主程序运行时,它会将特殊变量 (__name__) 设置为值(“__main__”)。
  • 当你在 Python 中执行主函数时,它会读取“if”语句并检查 __name__ 是否等于 __main__。
  • 在 Python 中,“if__name__== “__main__” 允许你将 Python 文件作为可重用模块或独立程序运行。

The __name__ 变量和 Python 模块

要理解 Python 主函数方法中 __name__ 变量的重要性,请考虑以下代码

def main():
    print("hello world!")

if __name__ == "__main__":
    main()

print("Guru99")

print("Value in built variable name is:  ",__name__)

The __name__ variable and Python Module

现在考虑,代码被导入为模块

import MainFunction

print("done")

The __name__ variable and Python Module

这是代码解释


与 C 语言一样,Python 使用 == 进行比较,使用 = 进行赋值。Python 解释器有两种方式使用主函数

直接运行

  • __name__=__main__
  • if 语句 == True,并且 _main_ 中的脚本将被执行

作为模块导入

  • __name__= 模块的文件名
  • if 语句 == False,并且 __main__ 中的脚本将不会被执行

当执行代码时,它会使用“if”检查模块名。此机制确保主函数仅在直接运行时执行,而在导入为模块时不会执行。

以上示例是 Python 3 代码,如果你想使用 Python 2,请参考以下代码

def main():
  print "Hello World!"
  
if __name__== "__main__":
  main()

print "Guru99"

在 Python 3 中,你无需使用 if__name。以下代码也能正常工作

def main():
  print("Hello World!")
  
main()
print("Guru99")

注意:确保在定义主函数后,留下一些缩进,而不是将代码写在 def main(): 函数的正下方,否则会导致缩进错误。