您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python編程中的if __name__ == 'main' 的作用和原理是什么”,在日常操作中,相信很多人在Python編程中的if __name__ == 'main' 的作用和原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python編程中的if __name__ == 'main' 的作用和原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
__name__ 是當前模塊名,當模塊被直接運行時模塊名為 __main__ 。這句話的意思就是,當模塊被直接運行時,以下代碼塊將被運行,當模塊是被導入時,代碼塊不被運行。
相信初學者在學習Python的過程中,不可避免的總會遇到if __name__ == 'main'語句,雖然一直知道它的作用,但是可能一直比較模糊,今天菜鳥分析就與大家一起舉例說說我的理解。
舉個例子,我們在下面在test.py中寫入如下代碼:
print('戀習Python') def main(): print('戀習Python') if __name__ == '__main__': main() print('跟著菜鳥分析,練習Python越練越戀')
運行代碼,則輸出結果為:
然后,在同一文件夾新建名稱為import_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編程中的if __name__ == 'main' 的作用和原理是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。