getter和setter

getter和setter

1.getter 和 setter的作用

getter作用:在獲取某個(gè)屬性值之前做別的事情,就給這個(gè)屬性添加getter
setter作用:如果在給屬性賦值之前想要做別的事情,就給這個(gè)屬性添加setter

2.怎么添加getter和setter
1)getter

第一步:在需要添加getter的屬性名之前加_
第二步:定義getter對(duì)應(yīng)的函數(shù)(1.需要@property裝飾器,2。函數(shù)名就是不帶_的屬性名 3. 函數(shù)需要一個(gè)返回值)
第三步:獲取屬性值的通過(guò):對(duì)象.不帶下劃線的屬性名(本質(zhì)就是在調(diào)用getter對(duì)應(yīng)的函數(shù),取到屬性值就是函數(shù)的返回值)

2)setter

如果想要給屬性添加setter,必須先給屬性添加getter
第一步:添加getter
第二步:定義setter對(duì)應(yīng)的函數(shù)(1.需要@getter函數(shù)名.setter 裝飾器 2.函數(shù)名就是不帶下劃線的屬性名 3. 需要一個(gè)參數(shù)不需要返回值,這個(gè)參數(shù)就是嘗試給屬性賦的值)
第三步:給屬性賦值:對(duì)象.不帶下劃線的屬性名 = 值 (本質(zhì)就是在調(diào)用setter對(duì)應(yīng)的函數(shù))

class Rect:
    def __int__(self, length=0, width=0):
        self.length = length
        self.width = width
        self._area = length*width


    @property
    def area(self):
        self._area = self.width * self.length
        return self._area


    @area.setter
    def area(self,value):
        raise ValueError


r1 = Rect(4, 5)
# print(r1.area)
# 不能讓矩形直接修改面積的屬性值
# r1.area = 100
# print(r1.__dict__)

# r1.width = 10
# print(r1.area)

# r1,length = 10
# print(r1.area)

# r1.area = 199
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容