Python中的模塊(.py文件)在創(chuàng)建之初會自動加載一些內(nèi)建變量,__name__就是其中之一。Python模塊中通常會定義很多變量和函數(shù),這些變量和函數(shù)相當于模塊中的一個功能,模塊被導(dǎo)入到別的文件中,可以調(diào)用這些變量和函數(shù)。那么這時 __name__ 的作用就彰顯了,它可以標識模塊的名字,可以顯示一個模塊的某功能是被自己執(zhí)行還是被別的文件調(diào)用執(zhí)行,假設(shè)模塊A、B,模塊A自己定義了功能C,模塊B調(diào)用模塊A,現(xiàn)在功能C被執(zhí)行了:
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了岳陽縣免費建站歡迎大家使用!如果C被A自己執(zhí)行,也就是說模塊執(zhí)行了自己定義的功能,那么 __name__=='__main__'
如果C被B調(diào)用執(zhí)行,也就是說當前模塊調(diào)用執(zhí)行了別的模塊的功能,那么__name__=='A'(被調(diào)用模塊的名字)
其實換一種說法也就是表示當前程序運行在哪一個模塊中
下面舉例說明:
首先自定義模塊Student,在模塊中定義功能Differ()
然后先自身執(zhí)行,結(jié)果如下, __name__=='__main__'
然后B調(diào)用執(zhí)行,結(jié)果 __name__=='Student'
上面出兩次結(jié)果,是因為python中導(dǎo)入模塊會先將文件執(zhí)行一遍,如下圖
到這兒可能有人已經(jīng)注意到,上面的 __main__ 在python中作可以為函數(shù)的入口,而實際工程常用 if __name__=='__main__'來表示整個工程開始運行的入口。此外你如果不想讓功能的某部分被別的模塊調(diào)用執(zhí)行,比如我自定的模塊Student里的‘我的密碼是xxx',只有自己執(zhí)行才可以打印密碼。所有你可以把部分寫在if語句里,只有__name__=='__main__'的時候才能執(zhí)行。這個可以這么理解,在if語句之外代碼是最外層的,有點“全局變量”的意思,放入if里面就成了私有的了。
知識點擴充
1.__name__
__name__ 是屬于 python 中的內(nèi)置類屬性,就是它會天生就存在與一個 python 程序中,代表對應(yīng)程序名稱。
也分兩種情況:
1)當python程序自己執(zhí)行時,__name__變量的值就是:__main__
2) 當python程序是作為模塊被導(dǎo)入時,那么__name__變量的值就是:程序的文件名,也就是.py前面的文件名稱。
2.使用場景
一般我們說使用場景,肯定會根據(jù)該知識點的功能來判斷。
情況一:比如有個功能模塊的程序test.py,在該程序里面有一部分是測試代碼,測試代碼塊會輸出內(nèi)容,驗證該程序是否能完成我們需求的功能。
但是我們在實際導(dǎo)入該模塊時,不需要輸出測試內(nèi)容。因此可以用if語句判斷__name__的值,進而限制測試代碼是否執(zhí)行。
以上就是創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司結(jié)合多篇整理的相關(guān)內(nèi)容,感謝大家的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
本文題目:Python關(guān)于__name__屬性的含義和作用詳解-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article28/dehdjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、品牌網(wǎng)站設(shè)計、動態(tài)網(wǎng)站、網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)