日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
秒懂Python編程中的if__name__=='main'的作用和原理

一天偶然發(fā)現(xiàn)知乎上有篇關(guān)于對(duì)python編程中的if __name__ == 'main'的理解陳述,看完之后,自己覺得不夠簡(jiǎn)單明了,于是在其文章底部寫了一句話,突然收獲各位乎友滿滿的贊同:

一句話,秒懂

__name__ 是當(dāng)前模塊名,當(dāng)模塊被直接運(yùn)行時(shí)模塊名為 __main__ 。這句話的意思就是,當(dāng)模塊被直接運(yùn)行時(shí),以下代碼塊將被運(yùn)行,當(dāng)模塊是被導(dǎo)入時(shí),代碼塊不被運(yùn)行。

相信初學(xué)者在學(xué)習(xí)Python的過程中,不可避免的總會(huì)遇到if __name__ == 'main'語句,雖然一直知道它的作用,但是可能一直比較模糊,今天菜鳥分析就與大家一起舉例說說我的理解。

舉個(gè)例子,我們?cè)谙旅嬖趖est.py中寫入如下代碼:

 
 
 
 
  1. print('戀習(xí)Python')
  2. def main():
  3.     print('戀習(xí)Python')
  4. if __name__ == '__main__':
  5.     main()
  6.     print('跟著菜鳥分析,練習(xí)Python越練越戀')

運(yùn)行代碼,則輸出結(jié)果為:

然后,在同一文件夾新建名稱為import_test.py的腳本,只輸入代碼:

 
 
 
 
  1. import test

運(yùn)行代碼,則輸出結(jié)果為:

與之前test.py代碼運(yùn)行結(jié)果比較,只有輸出戀習(xí)Python,也就是if __name__=="__main__": 之前的語句被執(zhí)行,之后的沒有被執(zhí)行。

這是為什么呢?別急,菜鳥分析繼續(xù)給你舉例子說明,絕對(duì)讓你滿意為止,最后有一種豁然開朗的感覺。

現(xiàn)在,我們?cè)趖est.py腳本的if __name__=="__main__":之前加入print __name__,即將__name__打印出來,則最后運(yùn)行結(jié)果如下:

可以看出,此時(shí)變量__name__的值為"__main__"。

再執(zhí)行import_test.py,模塊內(nèi)容和執(zhí)行結(jié)果如下:

此時(shí),import_test.py中的__name__變量值為test,不滿足__name__=="__main__"的條件,因此,無法執(zhí)行其后的代碼。

哈哈,是不是一下明白啦,覺得不錯(cuò),給菜鳥分析點(diǎn)個(gè)贊哦!

再仔細(xì)想想,其運(yùn)行原理也就是:

由于每個(gè)Python模塊(Python文件)都包含內(nèi)置的變量__name__,當(dāng)運(yùn)行模塊被執(zhí)行的時(shí)候,__name__等于文件名(包含了后綴.py)。如果import到其他模塊中,則__name__等于模塊名稱(不包含后綴.py)。而“__main__”等于當(dāng)前執(zhí)行文件的名稱(包含了后綴.py)。所以當(dāng)模塊被直接執(zhí)行時(shí),__name__ == '__main__'結(jié)果為真;而當(dāng)模塊被import到其他模塊中時(shí),__name__ == '__main__'結(jié)果為假,就是不調(diào)用對(duì)應(yīng)的方法。

簡(jiǎn)而言之就是:__name__ 是當(dāng)前模塊名,當(dāng)模塊被直接運(yùn)行時(shí)模塊名為 __main__ 。當(dāng)模塊被直接運(yùn)行時(shí),代碼將被運(yùn)行,當(dāng)模塊是被導(dǎo)入時(shí),代碼不被運(yùn)行。

一句話,秒懂!


網(wǎng)站標(biāo)題:秒懂Python編程中的if__name__=='main'的作用和原理
文章地址:http://www.5511xx.com/article/dhhiheo.html