人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

關(guān)于python中模塊和重載的問題

發(fā)布日期:2021-12-15 09:27 | 文章來源:源碼中國

模塊和重載

簡單來講,任意一個(gè)以.py結(jié)尾的python文件都是一個(gè)模塊。例如有A.py和B.py兩個(gè)文件。在A中可以通過導(dǎo)入B來讀取B模塊定義的內(nèi)容,導(dǎo)入操作本質(zhì)上就是載入另一個(gè)文件。
基于模塊的模型是python程序架構(gòu)背后的核心思想。

一個(gè)大型python程序往往以多個(gè)模塊文件的形式出現(xiàn),并且從其它模塊導(dǎo)入工具。但是通常會(huì)指定一個(gè)模塊文件作為主文件(也叫頂層文件),該文件啟動(dòng)之后,就會(huì)運(yùn)行整個(gè)程序。除了頂層文件之外的其他文件都是導(dǎo)入模塊。

導(dǎo)入操作將會(huì)導(dǎo)致模塊中的代碼被運(yùn)行,因此導(dǎo)入文件也是一種運(yùn)行python文件的方法。 模塊文件只有第一次被導(dǎo)入的時(shí)候會(huì)被執(zhí)行,之后就不會(huì)被執(zhí)行。如下圖所示:

如果你想在同一個(gè)python會(huì)話中,多次運(yùn)行模塊文件,你需要調(diào)用importlib模塊的reload方法(reload方法在python2中是內(nèi)置方法,在python3中需要從importlib模塊中導(dǎo)入)。如下圖所示:

reload函數(shù)載入并運(yùn)行了代碼,如果你對(duì)reload載入的代碼做過修改,那么下一次reload將會(huì)載入修改過的代碼。如下圖所示:

注意,reload函數(shù)使用的前提是之前import過該模塊,否則會(huì)報(bào)錯(cuò)。
因?yàn)閞eload希望獲得的參數(shù)是一個(gè)已經(jīng)被導(dǎo)入過的模塊名稱。
reload函數(shù)是不傳遞的,也就是說你重載了A文件,A文件中導(dǎo)入的模塊不會(huì)被重載。

導(dǎo)入和重載提供了一種自然的程序啟動(dòng)選項(xiàng)。模塊其實(shí)起到了一個(gè)命名空間的作用。而模塊中的變量就是屬性。

導(dǎo)入模塊可以使用import也可以使用from。它們之間是有一定的差別的,from是復(fù)制了模塊的屬性,使得屬性成為該文件的直接變量。這時(shí)候你就能直接使用該屬性。例如:

使用load模塊的屬性a,需要使用object.attributu的方式來使用。而b是通過from方法導(dǎo)入的,則不需要,因?yàn)閒rom將b復(fù)制到了該文件中,而不是依舊存在于load這個(gè)命名空間。

無論是import還是from導(dǎo)入文件,都不需要加python文件擴(kuò)展名.py,如果你一不小心加上了,那么會(huì)報(bào)錯(cuò)。

模塊與命名空間

每個(gè)模塊都是自包含的命名空間,一個(gè)模塊文件無法獲得另一個(gè)模塊文件中的變量,除非它顯示的導(dǎo)入那個(gè)文件。每一個(gè)模塊都是一個(gè)獨(dú)立的命名空間。

到此這篇關(guān)于關(guān)于python中模塊和重載的問題的文章就介紹到這了,更多相關(guān)python 模塊和重載內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部