當前位置:
首頁 > 知識 > 淺入深談:秒懂python編程中的if

淺入深談:秒懂python編程中的if

投稿作者

丁彥軍

作者介紹:

一個痴迷於Python語言的業餘程序猿,經過半年苦練,經歷過從入門到放棄,現在慶幸走到痴迷於Python狀態。未來的理想是能夠與一群痴迷於Python語言的程序猿做有意義的事。

知乎專欄|戀習Python鏈接:https://www.zhihu.com/people/cai-niao-fen-xi-64/activities

相信初學者在學習Python的過程中,不可避免的總會遇到

if __name__ == "main"語句,雖然一直知道它的作用,但是可能一直比較模糊,今天菜鳥分析就與大家一起舉例說說我的理解。

舉個例子,我們在下面在test.py中寫入如下代碼:

import test

運行代碼,則輸出結果為:

與之前test.py代碼運行結果比較,只有輸出戀習Python,也就是if __name__=="__main__": 之前的語句被執行,之後的沒有被執行。

這是為什麼呢?別急,菜鳥分析繼續給你舉例子說明,絕對讓你滿意為止,最後有一種豁然開朗的感覺。

現在,我們在test.py腳本的if __name__=="__main__":之前加入print __name__,即將__name__列印出來,則最後運行結果如下:

可以看出,此時變數__name__的值為"__main__"。

再執行import_test.py,模塊內容和執行結果如下:

此時,import_test.py中的__name__變數值為test,不滿足__name__=="__main__"的條件,因此,無法執行其後的代碼。

哈哈,是不是一下明白啦,覺得不錯,給菜鳥分析點個贊哦!

再仔細想想,其運行原理也就是:

由於每個python模塊(python文件)都包含內置的變數__name__,當運行模塊被執行的時候,__name__等於文件名(包含了後綴.py)。如果import到其他模塊中,則__name__等於模塊名稱(不包含後綴.py)。而「__main__」等於當前執行文件的名稱(包含了後綴.py)。所以當模塊被直接執行時,__name__ == "__main__"結果為真;而當模塊被import到其他模塊中時,__name__ == "__main__"結果為假,就是不調用對應的方法。

簡而言之就是:__name__ 是當前模塊名,當模塊被直接運行時模塊名為 __main__ 。當模塊被直接運行時,代碼將被運行,當模塊是被導入時,代碼不被運行。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 python 的精彩文章:

Python入門教程
推薦幾本入門Python必看的書!

TAG:python |