Python 主函数和方法示例:理解 def Main()
什么是 Python 主函数?
Python 主函数是任何程序的起点。当程序运行时,Python 解释器会按顺序执行代码。主函数仅在作为 Python 程序运行时执行。如果它被导入为模块,则不会运行主函数。
Python 中的 def main() 函数是什么?要理解这一点,请考虑以下示例代码
def main() 示例 1
def main(): print ("Hello World!") print ("Guru99")
在这里,我们有两个打印语句——一个是定义在主函数内的“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 解释器读取源文件时,它将执行其中找到的所有代码。
- 当 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__)
现在考虑,代码被导入为模块
import MainFunction print("done")
这是代码解释
与 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(): 函数的正下方,否则会导致缩进错误。