getter和setter

getter和setter

1.getter 和 setter的作用

getter作用:在获取某个属性值之前做别的事情,就给这个属性添加getter
setter作用:如果在给属性赋值之前想要做别的事情,就给这个属性添加setter

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

第一步:在需要添加getter的属性名之前加_
第二步:定义getter对应的函数(1.需要@property装饰器,2。函数名就是不带_的属性名 3. 函数需要一个返回值)
第三步:获取属性值的通过:对象.不带下划线的属性名(本质就是在调用getter对应的函数,取到属性值就是函数的返回值)

2)setter

如果想要给属性添加setter,必须先给属性添加getter
第一步:添加getter
第二步:定义setter对应的函数(1.需要@getter函数名.setter 装饰器 2.函数名就是不带下划线的属性名 3. 需要一个参数不需要返回值,这个参数就是尝试给属性赋的值)
第三步:给属性赋值:对象.不带下划线的属性名 = 值 (本质就是在调用setter对应的函数)


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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值