您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Python中的main函數是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python中的main函數是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
相信很多小伙伴對函數都不陌生了,函數是可復用的代碼塊,它構成了在編程語言中執行操作的基礎,它們被用來對輸入數據執行計算并將輸出呈現給最終用戶。
我們已經了解到,函數是為執行特定任務而編寫的一段代碼。Python中的函數分為三種類型,即內置函數、用戶定義函數和匿名函數。同時我們需要明確,main 函數與 Python 中的任何其他函數都是一樣的,沒有區別。
在大多數編程語言中,都有一個特殊的函數,每次程序運行時都會自動執行,這就是是 main 函數,或通常表示的 main(),它本質上是程序執行的起點。
在 Python 中,不必每次編寫程序時都定義 main 函數,這是因為除非定義了特定函數,否則 Python 解釋器都會從文件頂部執行。因此,為 Python 程序的執行定義一個起點有助于更好地理解程序的工作原理。
在大多數 Python 程序/腳本中,我們可能會看到一個函數定義,然后是一個條件語句,如下所示:
def main(): print("Hello, World!") if __name__== "__main__" : main()
main 函數對于 Python 來說是必須的嗎
在 Python 中擁有 main 函數并不是強制性的,但是,在上面的示例中,我們可以看到,定義了一個名為 main() 的函數,下面是一個條件 if 語句,它檢查 __name__ 的值,并將其與字符串 __main__ 進行比較,當為 True 時,就會執行 main()。
在執行時,會打印“Hello, World!”。
當我們處理要作為 Python 腳本執行或要在其他模塊中導入的文件時,這種代碼模式是非常常見的。
讓我們詳細來看一下這段代碼是如何執行的,首先我們非常有必要了解 Python 解釋器設置 __name__ 取決于代碼的執行方式。那么,讓我們了解一下 Python 中的執行模式
有兩種主要方法可以告訴 Python 解釋器執行代碼:
最常見的方法是將文件作為 Python 腳本執行
通過將必要的代碼從一個 Python 文件導入到另一個文件
無論我們選擇哪種執行模式,Python 都會定義一個名為 __name__ 的特殊變量,其中包含一個字符串。正如我們前面所看到的,這個字符串的值取決于代碼的執行方式。
有時當我們從模塊導入時,我們想知道特定模塊的函數是否被用作導入,或者只是使用該模塊的原始 .py(Python 腳本)文件。
為了解決這個問題,Python 有一個特殊的內置變量,稱為 __name__,可以根據運行或執行腳本的方式,此變量會被分配字符串 __main__。
Python main 函數是任何 Python 程序的入口。當我們運行程序時,解釋器按順序運行代碼,如果作為模塊導入,則不會運行 main 函數,main 函數只有在作為 Python 程序運行時才會執行。
因此如果我們直接運行腳本,Python 會將 __main__ 分配給 __name__,即 __name__=“__main__”。
因此,如果條件語句的計算結果為 True,則意味著 .py(Python 腳本)文件正在直接運行或執行。
有一點需要重點注意,如果我們直接在 Python shell 或終端上運行某些東西,則默認情況下,此條件語句恰好為 True。
最終我們習慣性的把所有必要的函數定義都寫在了代碼文件的最上面,最后在文件的最后寫了這條語句,來組織代碼。
if __name__ == "__main__" : Logic Statements
簡而言之,__name__ 變量可以幫助我們檢查文件是直接運行還是已導入。
在編寫具有 main 功能的程序時,我們需要記住如下一些事情
盡可能使用函數和類
長期以來,我們一直在學習面向對象編程的概念及其優勢,所以絕對有必要將批量邏輯代碼放在緊湊的函數或類中。通過這種方式,我們可以控制代碼的執行,而不是讓 Python 解釋器一導入模塊就執行它。
讓我們看看下面的一段代碼:
def get_got(): print("…Fetching GOT Data… n") data="Bran Stark wins the Iron Throne. n" print("…GOT Data has been fetched…n") return data print("n Demo: Using Functions n") got=get_got() print(got)
在上面的示例中,我定義了一個名為 get_got 的函數,它返回存儲在變量 data 中的字符串。然后將其存儲在名為 got 的變量中,最后打印該變量。
輸出如下:
使用 __name__ 來控制代碼的執行
現在我們知道了什么是 __name__ 變量,那么該如何以及為什么使用它。讓我們看看下面的代碼片段:
if __name__ == "__main__": got = "Game of Thrones is a legendary shown" print(got) new_got = str.split(got) print(new_got)
在上面的示例中,條件 if 語句將比較變量 __name__ 的值與字符串 __main__。當且僅當它的計算結果為 True 時,才會執行下一組邏輯語句。由于我們直接運行程序,我們知道條件語句將是 True。因此語句被執行,我們得到了想要的輸出。這樣我們就可以使用 __name__ 變量來控制我們代碼的執行。
輸出如下:
創建一個包含要運行代碼的函數 main()。
到目前為止,我們已經了解了 Python 代碼的各種執行方式,同時我們還知道為什么以及何時使用 main() 函數,下面就來應用它。看下面這段代碼:
print("n Main Function Demo n") def demo(got): print("…Beginning Game Of Thrones…n") new_got = str.split(got) print("…Game of Thrones has finished…n") return new_got def main(): got= "n Bran Stark wins the Iron Throne n" print(got) new_got = demo(got) print(new_got) if __name__ == "__main__": main()
在上面的例子中,我們使用了 main() 的定義,它包含了我們要運行的程序邏輯。我們還定義了一個名為 demo 的函數,包含一段代碼,可以在必要時復用。此外我們還更改了條件塊,使其執行 main()。
這樣,我們將要運行的代碼放在 main() 中,將編程邏輯放在一個名為 demo 的函數中,并在條件塊中調用 main()。
來看一下輸出:
可以嘗試一下,如果將此代碼作為腳本運行或導入它,則輸出將是相同的。
從 main() 調用其他函數
當我們編寫成熟的 Python 程序時,可能有許多可以調用和使用的函數。通常情況下,一些函數應該在程序開始執行時立即調用。因此,從 main() 本身調用其他函數就是最佳的選擇了。
讓我們看看下面的代碼片段:
print("n Main Function Demo n") def demo(got): print("…Beginning Game Of Thrones Demo1…n") new_got = str.split(got) print("…Game of Thrones has finished…n") return new_got def getgot(): print("…Getting GOT Data…n") got="Bran Stark wins the Iron Throne n" print("…GOT Data has been returned…n") return got def main(): got= getgot() print(got) new_got = demo(got) print(new_got) if __name__ == "__main__": main()
在上面的示例中,我們定義了一個名為 getgot() 的函數來獲取數據,這個函數是從 main() 本身調用的。
因此,從 main() 中調用其他函數以將整個任務從可以獨立執行的較小子任務中組合起來總是較好的選擇。
輸出如下:
讀到這里,這篇“Python中的main函數是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。