真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python封裝函數(shù)的方法是什么-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),交城企業(yè)網(wǎng)站建設(shè),交城品牌網(wǎng)站建設(shè),網(wǎng)站定制,交城網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,交城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

python封裝函數(shù)的方法是什么?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!

什么是封裝

在程序設(shè)計(jì)中,封裝(Encapsulation)是對(duì)具體對(duì)象的一種抽象,即將某些部分隱藏起來(lái),在程序外部看不到,其含義是其他程序無(wú)法調(diào)用。

要了解封裝,離不開(kāi)“私有化”,就是將類(lèi)或者是函數(shù)中的某些屬性限制在某個(gè)區(qū)域之內(nèi),外部無(wú)法調(diào)用。

為什么要封裝

封裝數(shù)據(jù)的主要原因是:保護(hù)隱私(把不想別人知道的東西封裝起來(lái))

封裝方法的主要原因是:隔離復(fù)雜度(比如:電視機(jī),我們看見(jiàn)的就是一個(gè)黑匣子,其實(shí)里面有很多電器元件,對(duì)于用戶(hù)來(lái)說(shuō),我們不需要清楚里面都有些元件,電視機(jī)把那些電器元件封裝在黑匣子里,提供給用戶(hù)的只是幾個(gè)按鈕接口,通過(guò)按鈕就能實(shí)現(xiàn)對(duì)電視機(jī)的操作。)

提示:在編程語(yǔ)言里,對(duì)外提供的接口(接口可理解為了一個(gè)入口),就是函數(shù),稱(chēng)為接口函數(shù),這與接口的概念還不一樣,接口代表一組接口函數(shù)的集合體。

封裝分為兩個(gè)層面

封裝其實(shí)分為兩個(gè)層面,但無(wú)論哪種層面的封裝,都要對(duì)外界提供好訪問(wèn)你內(nèi)部隱藏內(nèi)容的接口(接口可以理解為入口,有了這個(gè)入口,使用者無(wú)需且不能夠直接訪問(wèn)到內(nèi)部隱藏的細(xì)節(jié),只能走接口,并且我們可以在接口的實(shí)現(xiàn)上附加更多的處理邏輯,從而嚴(yán)格控制使用者的訪問(wèn))

第一個(gè)層面的封裝(什么都不用做):創(chuàng)建類(lèi)和對(duì)象會(huì)分別創(chuàng)建二者的名稱(chēng)空間,我們只能用類(lèi)名.或者obj.的方式去訪問(wèn)里面的名字,這本身就是一種封裝。

print(m1.brand) #實(shí)例化對(duì)象(m1.)
print(motor_vehicle.tag) #類(lèi)名(motor_vehicle.)
-------------輸出結(jié)果--------------
春風(fēng)
fuel oil

注意:對(duì)于這一層面的封裝(隱藏),類(lèi)名.和實(shí)例名.就是訪問(wèn)隱藏屬性的接口

第二個(gè)層面的封裝:類(lèi)中把某些屬性和方法隱藏起來(lái)(或者說(shuō)定義成私有的),只在類(lèi)的內(nèi)部使用、外部無(wú)法訪問(wèn),或者留下少量接口(函數(shù))供外部訪問(wèn)。

Python中私有化的方法也比較簡(jiǎn)單,即在準(zhǔn)備私有化的屬性(包括方法、數(shù)據(jù))名字前面加兩個(gè)下劃線(xiàn)即可。

類(lèi)中所有雙下劃線(xiàn)開(kāi)頭的名稱(chēng)如_x都會(huì)自動(dòng)變形成:類(lèi)名__x的形式:

class A:
    __N=0 #類(lèi)的數(shù)據(jù)屬性就應(yīng)該是共享的,但是語(yǔ)法上是可以把類(lèi)的數(shù)據(jù)屬性設(shè)置成私有的如__N,會(huì)變形為_(kāi)A__N
    def __init__(self):
        self.__X=10 #變形為self._A__X
    def __foo(self): #變形為_(kāi)A__foo
        print('from A')
    def bar(self):
        self.__foo() #只有在類(lèi)內(nèi)部才可以通過(guò)__foo的形式訪問(wèn)到. 

這種自動(dòng)變形的特點(diǎn):

1、類(lèi)中定義的__x只能在內(nèi)部使用,如self.__x,引用的就是變形的結(jié)果。

2、這種變形其實(shí)正是針對(duì)外部的變形,在外部是無(wú)法通過(guò)__x這個(gè)名字訪問(wèn)到的。

3、在子類(lèi)定義的_x不會(huì)覆蓋在父類(lèi)定義的__x,因?yàn)樽宇?lèi)中變形成了:子類(lèi)名_x,而父類(lèi)中變形成了:父類(lèi)名__x,即雙下滑線(xiàn)開(kāi)頭的屬性在繼承給子類(lèi)時(shí),子類(lèi)是無(wú)法覆蓋的。

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)python封裝函數(shù)的方法是什么大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。


分享文章:python封裝函數(shù)的方法是什么-創(chuàng)新互聯(lián)
本文路徑:http://weahome.cn/article/cepgoe.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部