if __name__=="__main__":
1、這段程式碼的功能
一個python的檔案有兩種使用的方法,第一是直接作為指令碼執行,第二是import到其他的python指令碼中被呼叫(模組重用)執行。因此if __name__ == 'main': 的作用就是控制這兩種情況執行程式碼的過程,在if __name__ == 'main': 下的程式碼只有在第一種情況下(即檔案作為指令碼直接執行)才會被執行,而import到其他指令碼中是不會被執行的。
舉個例子,下面在test.py中寫入如下程式碼:
並直接執行test.py,結果如下圖,可以成功print兩行字串。即,if __name__=="__main__": 語句之前和之後的程式碼都被執行。
然後在同一資料夾新建名稱為import_test.py的指令碼,只輸入如程式碼:
執行import_test.py指令碼,輸出結果如下:
![if __name__=="__main__"演示](https://i.iter01.com/images/4037c4eef4d2c900c49f259c0537f7a8ff8fb271bea17320c70351b269de129d.png)
只輸出了第一行字串。即,if __name__=="__main__": 之前的語句被執行,之後的沒有被執行。
2、執行的原理
每個python模組(python檔案,也就是此處的test.py和import_test.py)都包含內建的變數__name__,當執行模組被執行的時候,__name__等於檔名(包含了字尾.py);如果import到其他模組中,則__name__等於模組名稱(不包含字尾.py)。而“__main__”等於當前執行檔案的名稱(包含了字尾.py)。進而當模組被直接執行時,__name__ == 'main'結果為真。
同樣舉例說明,我們在test.py指令碼的if __name__=="__main__":之前加入print __name__,即將__name__列印出來。檔案內容和結果如下,
可以看出,此時變數__name__的值為"__main__";
再執行import_test.py,模組內容和執行結果如下:
此時,test.py中的__name__變數值為test,不滿足__name__=="__main__"的條件,因此,無法執行其後的程式碼。
相關文章
- if __name__==”__main__”:AI
- if __name__ == ‘__main__‘AI
- Python中“if __name__=='__main__PythonAI
- Python中if __name__ == '__main__'作用解析PythonAI
- __name__ == “__main__”的作用是什麼?AI
- __name__ == "__main__"的作用是什麼?AI
- ~~物件導向進階(二)——__name__=="__main__"~~物件AI
- __name__ == '__main__' 到底是什麼意思AI
- python中的__name__=='__main__'如何簡單理解PythonAI
- 寫了2年python,知道 if __name__ == '__main__' 什麼意思嗎?PythonAI
- Python面試|一文讓你讀懂if __name__=='__main__'的含義Python面試AI
- 【Python】__name__ 是什麼?Python
- 記錄python介面自動化測試--pycharm執行測試用例時需要使用的姿勢(解決if __name__ == "__main__":裡面的程式不生效的問題)(第三目)PythonPyCharmAI
- Python學習筆記|Python之內建變數__name__Python筆記變數
- python二郎成長筆記(一)(pip升級,python入門,基礎,python2和3不同格式帶來的問題,標頭檔案引用的格式,變數的型別,__name__ == '__main__')Python筆記變數型別AI
- 小白:關於處理“can't find '__main__' module in ”這個問題的詳細處理方式!AI