為什麼Python中沒有main()函數?

王林
發布: 2023-08-28 11:05:06
轉載
1017 人瀏覽過

為什麼Python中沒有main()函數?

在本文中,我們將了解為什麼 Python 中沒有 main() 函數。

毫無疑問,Python 沒有所謂的main函數,但是,關於 網路上經常引用「Python的主要函數」和「建議編寫 主要功能。 "

他們的目的可能是複製最初的主要方法,但許多人 被誤導(或誤解)並因此創建極其複雜的程式碼。

在開始之前,我們將回答以下兩個問題 -

  • 「主要功能」到底是什麼?

  • 為什麼有些程式語言需要使用main函數?

一些程式語言,例如 C/C 、C#、Java、Go、Rust 等,採用 main函數作為程式的執行入口,有特定的意義 -

  • 這個主函數名稱是必要的,這意味著必須有一個主函數 功能。

  • 因為只能有一個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中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!