這篇文章主要講解了“Python中py文件里的name == 'main'有什么用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python中py文件里的name == 'main'有什么用”吧!
成都創(chuàng)新互聯(lián)公司長期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為谷城企業(yè)提供專業(yè)的網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計,谷城網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
在查看 Python 代碼的時候,我們經(jīng)常在代碼中看見這樣一句if __name__ == "__main__":
,到底是干啥的呢?不寫行不行?寫了有什么好處?
默認情況下,Python 代碼是從上到下,一行一行被解釋器執(zhí)行的。當然,定義一個函數(shù),沒有調(diào)用時,內(nèi)部代碼是執(zhí)行不到的。之后,我們執(zhí)行任意一個 Python 文件,會從上往下執(zhí)行你寫好的每一個函數(shù),就是 print,a(), x.y()等等.
if __name__ == "__main__":
這句代碼,最關(guān)鍵的是這個地方:__name__
到底等于啥?
雙下劃線包裹的變量,一般為 Python 內(nèi)置變量,也是個全局變量,Python 內(nèi)部會自己處理。我們這里用兩個等于判斷是否等于雙下劃線的 main,其實就能猜到這個 name 是有時候等于 有時候不等于 main 的(DE8UG 注:雙下劃線不好寫,我這幾個單詞地方省略咯)。
什么時候等于呢?Python 規(guī)定的是,當調(diào)用當前 Python 腳本的時候。比如有個 a.py, 當用python a.py
調(diào)用的時候,name 就會賦值為 main,這時候 if 判斷成立,也就執(zhí)行這以后的代碼了。其他沒被直接調(diào)用的模塊,也就等于那個模塊自己的名字,其實就是那個 py 文件的名字。
綜上,我是建議大家每一個 python 文件里都寫上這一段的。把當前 py 文件里面,需要測試的代碼,以及我們想直接執(zhí)行的代碼,都寫到這句判斷的后面。這樣,既可以直接測試這個文件的代碼,而且其他地方調(diào)用這個文件的時候,也不會錯誤的執(zhí)行不需要的代碼了。
舉個例子:
# a.py
print('a.py')
print('a模塊名稱:', __name__)
# b.py
print('b.py')
print(__name__)
print('導(dǎo)入a')
import a
print('導(dǎo)入a結(jié)束')
if __name__ == "__main__":
print('運行這個python文件,才會顯示')
我們分別執(zhí)行兩個文件,查看效果:
? python a.py
a.py
a模塊名稱:__main__
? python b.py
b.py
__main__
導(dǎo)入a
a.py
a模塊名稱:a
導(dǎo)入a結(jié)束
運行這個python文件,才會顯示
小作業(yè):把 a 里面也加上那一句 if 的判斷,寫一些代碼,然后查看兩個文件的執(zhí)行結(jié)果。
感謝各位的閱讀,以上就是“Python中py文件里的name == 'main'有什么用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python中py文件里的name == 'main'有什么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!