if __name__ == __main___一文带你弄懂python中if __name__ == #39;__main__#39;
如模塊my_module.py中,可以在文件末尾基于__name__在不同應(yīng)用場(chǎng)景下值的不同來(lái)控制文件執(zhí)行不同的邏輯,如下所示:
#encoding:UTF-8#本文件為:my_module.py...if __name__ == '__main__': my_module.py被當(dāng)做腳本執(zhí)行else: my_module.py被當(dāng)做模塊導(dǎo)入時(shí)執(zhí)行首先建立一個(gè)python文件,如test1.py,文件代碼如下所示:
#encoding:UTF-8#本文件名為:test1.pydef print_hello(): print("歡迎關(guān)注公眾號(hào):浩道linux")print("本公眾號(hào)給大家分享最有趣最實(shí)用的linux、python知識(shí)!")#打印__name__的值print(__name__)if __name__ == '__main__': print("test1.py當(dāng)做腳本執(zhí)行執(zhí)行!!!")else: print("test1.py被當(dāng)做模塊導(dǎo)入時(shí)執(zhí)行。。。")運(yùn)行以上代碼,結(jié)果如下所示:
從結(jié)果看出,當(dāng)執(zhí)行test1.py本身文件時(shí),變量__name__的值為_(kāi)_main__。
其次,再創(chuàng)建一個(gè)python文件,如test2.py,文件代碼如下:
#encoding:UTF-8#本文件名為:test2.py#導(dǎo)入模塊test1import test1test1.print_hello()print("代碼執(zhí)行結(jié)束********")執(zhí)行test2.py文件,結(jié)果如下所示:
通過(guò)模塊那篇知識(shí)的學(xué)習(xí),不難看出test2.py所執(zhí)行原理以及結(jié)果。當(dāng)test1.py被當(dāng)成模塊導(dǎo)入時(shí),__name__的值由__main__變成了test1。
相信通過(guò)這兩個(gè)例子的比較,已經(jīng)弄懂if __name__ == '__main__'的用法了吧。用到該語(yǔ)句的場(chǎng)景一般就是我們寫(xiě)完一個(gè)函數(shù)代碼,自己想調(diào)用執(zhí)行測(cè)試,而又不希望自己寫(xiě)的代碼被當(dāng)成模塊導(dǎo)入時(shí),執(zhí)行我們的測(cè)試代碼。大家如果還有疑問(wèn),可以留言討論,希望能給大家?guī)?lái)解惑。往期內(nèi)容回顧:
干貨之六:python常見(jiàn)面試題,你會(huì)多少?
平時(shí)你輸入的驗(yàn)證碼,竟是這么簡(jiǎn)單就實(shí)現(xiàn)了
python常見(jiàn)模塊之time模塊
python實(shí)戰(zhàn)項(xiàng)目之---童年小游戲(附源碼)
總結(jié)
以上是生活随笔為你收集整理的if __name__ == __main___一文带你弄懂python中if __name__ == #39;__main__#39;的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: kali linux子远程桌面,适用于k
- 下一篇: websocket python爬虫_p