2020-12-11 Python中的 if __name__ == “__main__“
Python中的 if __name__ == "__main__"
對于Python初學者來說,在看別人代碼時經常會看到if __name__ == "__main__",這時心里就開始吐槽:“絕對又是裝逼,我特么不寫這句話,代碼不照樣跑得好好的!
我剛開始碰到這行代碼時,心里也是這樣想的!
吐槽歸吐槽,存在必然有存在的道理。現在就來看看這句代碼到底是個啥意思,因為這句話能夠幫你對Python模塊的理解上一個層次。
通過例子來理解
只要你創建了一個模塊(一個.py文件),這個模塊就有一個內置屬性name生成,該模塊的?name?的值取決于如何應用這個模塊。說人話就是,如果你直接運行該模塊,那么__name__ == "__main__";如果你 import 一個模塊,那么模塊name?的值通常為模塊文件名。
如,創建一個test1.py:
def func():print('hello, world!')if __name__ == "__main__":func()模塊中,首先定義了函數func(),用來打印出hello, world!,然后判斷__name__?是否等于?__main__,如果等于,有打印,反之則反,現在運行該模塊,結果為:
hello, world!說明__name__?等于?__main__。
這時,輸入代碼:
再創建一個test2.py:
import test1print('bye, world!')模塊中,首先import test1,然后打印bye, world!做測試用,運行該模塊,結果為:
bye, world!運行結果僅有bye, world!,說明__name__?不等于?__main__。
通過上面test1.py和test2.py兩個模塊,我們現在可以得出一個非常實用的結論:?如果模塊是被直接運行的,則代碼塊被運行,如果模塊被import,則代碼塊不被運行。
總結
以上是生活随笔為你收集整理的2020-12-11 Python中的 if __name__ == “__main__“的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020-12-09 深度学习 经典CN
- 下一篇: websocket python爬虫_p