if __name__ == __main___一文带你弄懂python中if __name__ == #39;__main__#39;
生活随笔
收集整理的這篇文章主要介紹了
if __name__ == __main___一文带你弄懂python中if __name__ == #39;__main__#39;
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們在python模塊那章節的學習,有所接觸到if __name__ == '__main__'這個概念。當時我們只是大概描述了一番,不少伙伴還是有所困惑,今天就讓我們通過實際例子去講解這條語句到底有何含義。一個python文件有兩種用途,一種被當主程序、腳本執行,另一種被當模塊導入,為了區別同一個文件的不同用途,每個py文件都內置了__name__變量,該變量在py文件被當做腳本執行時賦值為“__main__”,在py文件被當做模塊導入時賦值為模塊名。
如模塊my_module.py中,可以在文件末尾基于__name__在不同應用場景下值的不同來控制文件執行不同的邏輯,如下所示:
#encoding:UTF-8#本文件為:my_module.py...if __name__ == '__main__': my_module.py被當做腳本執行else: my_module.py被當做模塊導入時執行首先建立一個python文件,如test1.py,文件代碼如下所示:
#encoding:UTF-8#本文件名為:test1.pydef print_hello(): print("歡迎關注公眾號:浩道linux")print("本公眾號給大家分享最有趣最實用的linux、python知識!")#打印__name__的值print(__name__)if __name__ == '__main__': print("test1.py當做腳本執行執行!!!")else: print("test1.py被當做模塊導入時執行。。。")運行以上代碼,結果如下所示:
從結果看出,當執行test1.py本身文件時,變量__name__的值為__main__。
其次,再創建一個python文件,如test2.py,文件代碼如下:
#encoding:UTF-8#本文件名為:test2.py#導入模塊test1import test1test1.print_hello()print("代碼執行結束********")執行test2.py文件,結果如下所示:
通過模塊那篇知識的學習,不難看出test2.py所執行原理以及結果。當test1.py被當成模塊導入時,__name__的值由__main__變成了test1。
相信通過這兩個例子的比較,已經弄懂if __name__ == '__main__'的用法了吧。用到該語句的場景一般就是我們寫完一個函數代碼,自己想調用執行測試,而又不希望自己寫的代碼被當成模塊導入時,執行我們的測試代碼。大家如果還有疑問,可以留言討論,希望能給大家帶來解惑。往期內容回顧:
干貨之六:python常見面試題,你會多少?
平時你輸入的驗證碼,竟是這么簡單就實現了
python常見模塊之time模塊
python實戰項目之---童年小游戲(附源碼)
總結
以上是生活随笔為你收集整理的if __name__ == __main___一文带你弄懂python中if __name__ == #39;__main__#39;的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali linux子远程桌面,适用于k
- 下一篇: java接口文档生成工具_【分享】接口文