python 中 if __name__=="__main__" 的用法
阿新 • • 發佈:2018-11-08
在編寫規範的Python指令碼中,經常會出現以下函式:
> if __name__ == "__main__"
初學者可能會產生迷惑,其實它就是一個特殊的函式,類似於我們用 def 定義的,下面來解釋一下。
-
-
1、這段程式碼的功能
一個 python 檔案通常有兩種使用方法:
(1) 直接作為指令碼執行;
(2) 作為庫檔案被匯入(import)其他python檔案被呼叫(模組重用)。
if __name__=='__main__'
後面的程式碼,只有在第一種情況下才會被執行。
2、執行的原理
每個python模組(python檔案,也就是此處的test.py和import_test.py)都包含內建的變數__name__
(1)對於第一種情況,即模組被直接執行的時候,__name__
等於檔名(包含了字尾.py),即 __name__==test.py
;
(2)對於第二種情況,如果import到其他模組中,__name__
等於模組名稱(不包含字尾.py),即 __name__==test
。
(3)而__main__
等於當前執行檔案的名稱(包含了字尾.py)。
因此,
(1) 當模組被直接執行時,__main__==__name__==test.py
, __name__ == '__main__'
結果為真。
(2) 當模組被 import 到其他模組, __main__==import_test.py
__name__==test
,__name__==__main__
結果為假。
3.舉個例子:
(1) 假設 test1.py檔案裡的內容是
(2) import_test1.py檔案的內容只有一句話 ( import_test1.py 和test1.py 放在同一個資料夾)
**
那麼,
**
(1) test1.py的執行結果:
(2) Import_test1.py的執行結果:
[參考教程]
[1] if name == ‘main’ 如何正確理解?