__name__ 是當前模塊名,當模塊被直接運行時模塊名爲 __main__ 。這句話的意思就是,當模塊被直接運行時,如下代碼塊將被運行,當模塊是被導入時,代碼塊不被運行。python
相信好多初學者在學習python的過程當中,常常會遇到if __name__ == 'main'語句,可能你知道它的做用,也可能很模糊,今天就給你們分享下個人理解。學習
咱們先新建一個text的py文件,並寫入如下內容並運行3d
而後呢,在同一個文件夾中在新建一個py文件text1,寫入一行代碼:import text 而後運行看看結果blog
與以前test.py代碼運行結果比較,只有輸出學習Python,也就是if __name__=="__main__": 以前的語句被執行,以後的沒有被執行。test
爲何會這樣呢?別急,咱們稍微處理下代碼就能夠看明白了:import
在 if __name__=="__main__"以前加入一行代碼:print(__name__),即打印出__name__,而後咱們在從新分別執行2個代碼看看基礎
這就很清楚了,在text中__name__變量的值爲__main__,而在text1中,__name__的值爲text,明顯不知足if語句,所以,後面的代碼沒法執行!變量
仔細想一想,它的原理也就是:原理
每一個python模塊(文件)都包含內置的變量__name__,當該模塊被執行的時候,__name__就等於文件名。而import到其餘模塊(文件)中,則__name__等於當前的模塊名,而__main__等於當前文件名,因此直接執行模塊的時候if __name__=="__main__"爲真,能夠執行;import到其餘模塊(文件)中,if __name__=="__main__"爲假,那固然就不執行對應的代碼了。im
簡單說就是:__name__是當前的模塊名字,在當前文件時能夠被執行,而模塊被導入時,代碼不被運行!
喜歡就關注下唄( ̄ε  ̄)