Python底層封裝實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Python底層封裝實(shí)現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
事實(shí)上,python封裝特性的實(shí)現(xiàn)純屬“投機(jī)取巧”,之所以類對象無法直接調(diào)用私有方法和屬性,是因?yàn)榈讓訉?shí)現(xiàn)時,python偷偷改變了它們的名稱。
python在底層實(shí)現(xiàn)時,將它們的名稱都偷偷改成了"_類名__屬性(方法)名"的格式
class Person:
def setname(self, name):
if len(name) < 3:
raise ValueError('名稱長度必須大于3!')
self.__name = name
def getname(self):
return self.__name
#為name配置setter和getter方法
name = property(getname, setname)
def setage(self, age):
if age < 100:
self.__age = age
else:
raise ValueError('年齡必須小于100!')
def getage(self):
return self.__age
#為age配置getter和setter方法
age = property(getage, setage)
#定義私有方法
def __display(self):
print(self.__name, "今年", self.__age, "歲。")
xiaobai = Person()
xiaobai.name = "xiaobai"
xiaobai.age = 20
#直接調(diào)用隱藏的display()方法
xiaobai._Person__display()
xiaobai 今年 20 歲。
總結(jié):python類中所有的屬性和方法,都是公有的,如果希望python底層修改類屬性或者類方法的名稱,以此將它們隱藏起來,只需將它們的名稱前添加雙下劃線("__")即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python中創(chuàng)建包和增添包的路徑(sys.path.append())
本文主要介紹了Python中創(chuàng)建包和增添包的路徑(sys.path.append()),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
python3調(diào)用ansible?api使用實(shí)例例說明
這篇文章主要為大家介紹了python3?調(diào)用ansible?api使用說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
python調(diào)用百度地圖WEB服務(wù)API獲取地點(diǎn)對應(yīng)坐標(biāo)值
這篇文章主要為大家詳細(xì)介紹了python調(diào)用百度地圖WEB服務(wù)API獲取地點(diǎn)對應(yīng)坐標(biāo)值,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01
基于asyncio 異步協(xié)程框架實(shí)現(xiàn)收集B站直播彈幕
本文給大家分享的是基于asyncio 異步協(xié)程框架實(shí)現(xiàn)收集B站直播彈幕收集系統(tǒng)的簡單設(shè)計(jì),并附上源碼,有需要的小伙伴可以參考下2016-09-09
關(guān)于python的xlwings與VBA間的互相調(diào)用
這篇文章主要介紹了關(guān)于python的xlwings與VBA間的互相調(diào)用,VBA是一種通用應(yīng)用軟件腳本語言,Excel包含和許多功能強(qiáng)大的數(shù)據(jù)分析對象,例如工作表、圖表、數(shù)據(jù)透視表以及大量的數(shù)學(xué)、財務(wù)、工程和通用業(yè)務(wù)函數(shù),配合VBA可以運(yùn)用這些對象開發(fā)出自動程序2023-07-07

