<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Python 中的 main
函數充當程式的執行點,在 Python 程式設計中定義 main
函數是啟動程式執行的必要條件,不過它僅在程式直接執行時才執行,而在作為模組匯入時不會執行。
要了解有關 Python main
函數的更多資訊,我們將從如下幾點逐步學習:
Let’s get started
相信很多小夥伴對函數都不陌生了,函數是可複用的程式碼塊,它構成了在程式語言中執行操作的基礎,它們被用來對輸入資料執行計算並將輸出呈現給終端使用者。
我們已經瞭解到,函數是為執行特定任務而編寫的一段程式碼。Python中的函數分為三種型別,即內建函數、使用者定義函數和匿名函數。同時我們需要明確,main
函數與 Python 中的任何其他函數都是一樣的,沒有區別。
那麼讓我們來了解一下 Python 中的 main 函數到底是什麼。
在大多數程式語言中,都有一個特殊的函數,每次程式執行時都會自動執行,這就是是 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 都會定義一個名為 __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("&hellip;Fetching GOT Data&hellip; n") data="Bran Stark wins the Iron Throne. n" print("&hellip;GOT Data has been fetched&hellip;n") return data print("n Demo: Using Functions n") got=get_got() print(got)
在上面的範例中,我定義了一個名為 get_got
的函數,它返回儲存在變數 data
中的字串。然後將其儲存在名為 got
的變數中,最後列印該變數。
輸出如下:
現在我們知道了什麼是 __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__
變數來控制我們程式碼的執行。
輸出如下:
到目前為止,我們已經瞭解了 Python 程式碼的各種執行方式,同時我們還知道為什麼以及何時使用 main()
函數,下面就來應用它。看下面這段程式碼:
print("n Main Function Demo n") def demo(got): print("&hellip;Beginning Game Of Thrones&hellip;n") new_got = str.split(got) print("&hellip;Game of Thrones has finished&hellip;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()
。
來看一下輸出:
可以嘗試一下,如果將此程式碼作為指令碼執行或匯入它,則輸出將是相同的
當我們編寫成熟的 Python 程式時,可能有許多可以呼叫和使用的函數。通常情況下,一些函數應該在程式開始執行時立即呼叫。因此,從 main()
本身呼叫其他函數就是最佳的選擇了。
讓我們看看下面的程式碼片段:
print("n Main Function Demo n") def demo(got): print("&hellip;Beginning Game Of Thrones Demo1&hellip;n") new_got = str.split(got) print("&hellip;Game of Thrones has finished&hellip;n") return new_got def getgot(): print("&hellip;Getting GOT Data&hellip;n") got="Bran Stark wins the Iron Throne n" print("&hellip;GOT Data has been returned&hellip;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()
函數的全部內容以及如何使用它有一個全面而正確的理解。藉助 Python 中的 main()
函數,我們可以在需要時執行大量功能,還可以控制執行流程。
以上就是學習Python,你還不知道main函數嗎的詳細內容,更多關於Python main函數的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45