if __name__ == '__main__' 這段代碼怎麼理解???

__name__是內置變量,可用於表示當前模塊的名字,而「__main__」等於當前執行文件的名稱。 兩個名稱搞不清不要緊,往下看待會解釋python

 

對不少編程語言來講,程序都須要一個入口,例如C系列、Java,都須要有一個main函數做爲程序的入口,而python做爲腳本語言則不同,從第一行就開始執行,並無統一的入口。編程

一個python的文件有兩種使用的方法,第一是直接做爲腳本直接執行,第二是import到其餘的python腳本中做爲模塊被調用執行。可是在被看成模塊導入的時候總有一部分代碼是不但願被運行的,而   if __name__ == '__main__' :  的做用就是控制兩種狀況下代碼的運行。   
編程語言

print(__name__) print("this is song ") if __name__=='__main__': print("this is songsong ")

此時   if __name__=='__main__':   以前的語句被執行,以後的語句也被執行函數

 

第二種狀況被導入其餘文件調用this

from practice import b

小提示:此處導入了第一個文件,因此會執行第一個文件的代碼,不要問爲何第二個文件沒代碼spa

此時  if __name__=='__main__':   以前的語句被執行,以後的語句沒有被執行code

小結:文件直接運行時,if __name__=='__main__':以後的語句會被執行;當文件被看成模塊導入到其餘文件時,if __name__=='__main__':以後的語句不會被執行blog

 

此時回到第一行,開始解釋!io

上述兩個文件第一個  print(__name__)  結果爲__main__,第二個print(__name__)結果爲practice.bclass

__main__不管什麼時候都是表示當前執行文件的名字,而__name__表示當前模塊的名字

若是沒有引用模塊直接執行文件,__name__就等於__main__;若是導入了模塊,__name__就等於模塊名(例如:practice.b)

 

新手上路,多謝指教!

相關文章
相關標籤/搜索