在本文中,我們將了解為什麼 Python 中沒有 main() 函數。
毫無疑問,Python 沒有所謂的main函數,但是,關於 網路上經常引用「Python的主要函數」和「建議編寫 主要功能。 "
他們的目的可能是複製最初的主要方法,但許多人 被誤導(或誤解)並因此創建極其複雜的程式碼。
在開始之前,我們將回答以下兩個問題 -
「主要功能」到底是什麼?
為什麼有些程式語言需要使用main函數?
一些程式語言,例如 C/C 、C#、Java、Go、Rust 等,採用 main函數作為程式的執行入口,有特定的意義 -
這個主函數名稱是必要的,這意味著必須有一個主函數 功能。
因為只能有一個main函數,所以程式的每一個入口都是 獨一無二。
語法格式有特定的要求並且遵循非常一致(固定)的 模板。
這些是編譯語言,需要將程式碼編譯成可執行文件 作業系統/引導程式的二進位檔案來尋找程式的啟動,因此您 必須定義這一函數。
簡單地說,有一個重要的開始,必須在大量的內容中定義 可執行程式碼。
主要功能是這些語言的基本有機特徵。
但是,當我們返回 Python 時,情況發生了巨大變化。
Python 是一種解釋語言,也稱為腳本語言。這 運行過程從上到下,逐行運行,這意味著它的 起點已知。
每個.py檔案都是一個可執行文件,可以用作程式的入口點, 意味著程序的入口點是靈活的,並且不必遵循約定 已關注。
在不指定入口檔案的情況下執行Python專案時(越多 典型的命令列,例如「python -m http.server 8000」),可能是由於 存在 main.py 文件,該文件在套件中作為“文件”執行以下操作 操作。
綜上所述,腳本語言Python不同於編譯語言。它可以 在單一模組(即 .py 檔案)層級選擇靈活的執行技術, 或者在由許多模組組成的包級別,不像其他語言不能 無需明確定義的條目即可實現。
也就是說,Python不需要程式設計師指定統一的入口(無論是 它是語法層級的函數、類別或其他)。
有些用戶可能會感到困惑,因為他們經常遇到或編寫以下程式碼 -
# defining the main function using the def keyword def main(): …… if __name__ == '__main__': main()
這不是Python的main函數嗎?相信很多人都同意! -
不,不是。
除了函數名稱是「main」之外,它與正統的 main 沒有任何联系 我們之前描述過的函數,它不是必需的,也不一定控制順序 的程式執行。如果沒有它,它不會導致任何語法問題。
有些人希望確定一個“main”函數來強調其“主要”地位並 將其作為第一個要人工執行的函數。
他們可能認為具有此類名稱的函數更容易記住。
他們可能希望編寫 if name =='main' 來證明 main() 僅在以下情況下運行 當前腳本直接執行,導入時不應執行 其他模組。
但是,我們不建議採用這種寫作風格。
最常見的例子:只有幾十行程式碼或一個腳本文件 實現了一個簡單的功能(一個小爬蟲,用烏龜畫一幅畫等), 但它們的寫法都和以前一樣。
由於以下原因,不建議寫 if name__ == '__main' -
首先,如果因為沒有匯出選項而只有一個檔案。
二、如果有多個文件,則將這句話寫在入口文件(main.py)中 強烈勸阻。因為它是起點,所以它的內容不應該是 exported for use in 其他模組。
最後,把這個判斷寫在文件眾多的非入口文件中是不行的 建議,因為最多可以做的是創建其中一些測試 程式。但是,測試程式碼應該分開並儲存在單獨的 目錄或檔案。
每次遇到這種複雜的程式碼,我都會不假思索地擔心。為什麼 if 語句是你寫的嗎?如果可能的話,將主函數分開,甚至不要 將其包裝在一個函數中!
擺脫慣性思維,建立真實的程式碼。主要入口函數 是某些語言所特有的,不應在 Python 中使用。你應該 理解腳本語言的特徵並用簡單易懂的語言編寫 吸引人的風格。
使用main.py而不是main()。因為Python的程式執行單元是 腳本檔案而不是函數或類,入口檔案應命名為main.py, 內部功能由需求決定。
如果可行,請使用main.py作為入口檔案。這個文件組合起來使用很簡單 在命令列中使用“-m”參數。
在本文中,我們了解為什麼 Python 與其他程式語言不同,缺乏 主功能。我們也了解了條件 __name__ == '__main__'。
以上是為什麼Python中沒有main()函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!