為什麼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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。
