Python 主函數

Python 的主函数只有在作为 Python 程序执行时才会被执行。如你所知,我们也可以将 Python 程序作为模块导入,这种情况下 Python 主方法不应该执行。

Python 主函数

主函数是任何程序的入口点。但是 Python 解释器按顺序执行源文件代码,并且如果它不是代码的一部分,则不会调用任何方法。但是如果它直接是代码的一部分,则在将文件作为模块导入时将被执行。这就是为什么有一种特殊的技术来定义 Python 程序中的主方法,以便它只在直接运行程序时被执行,而在作为模块导入时不被执行。让我们看看如何在一个简单的程序中定义 Python 主函数。python_main_function.py

print("Hello")

print("__name__ value: ", __name__)


def main():
    print("python main function")


if __name__ == '__main__':
    main()
  • 当一个 Python 程序被执行时,Python 解释器开始执行其中的代码。它还设置了一些隐含的变量值,其中之一是名为 __name__ 的变量,其值被设置为 __main__

  • 對於 Python 主函數,我們必須定義一個 函數,然後使用 if __name__ == '__main__' 條件來執行此函數。

  • 如果 Python 源文件被引入為 模塊,Python 解釋器將 __name__ 值設置為模塊名稱,因此 if 條件將返回 false,主方法將不會被執行。

  • Python 為我們提供了靈活性,可以為主方法保留任何名稱,但最佳做法是將其命名為 main() 方法。下面的代碼完全正確,但不建議使用。

    def main1():
        print("python main function")
    
    
    if __name__ == '__main__':
        main1()
    

以下圖片顯示了當執行 python_main_function.py 作為源文件時的輸出。

Python 主函數作為模塊

現在讓我們將上述 Python 源文件作為模塊並在另一個程序中導入。python_import.py

import python_main_function

print("Done")

現在當上述程序被執行時,將產生以下輸出。

Hello
__name__ value:  python_main_function
Done

請注意,前兩行是從 python_main_function.py 源文件中打印的。請注意,__name__ 的值不同,因此未執行主方法。請注意,Python 程序語句是逐行執行的,因此在條件之前首先定義 main() 方法很重要,以執行主方法。否則,您將收到錯誤消息:NameError: name 'main' is not defined。這就是有關 Python 主函數的全部內容。參考:Python 文檔

Source:
https://www.digitalocean.com/community/tutorials/python-main-function