python @property

当我们创建类时,可以直接给类添加属性,并赋值,比如下例中的age

class Student(object):
    pass

student = Student()
student.age = 10
print(student.age)

如果想对age做限制时,就需要创建getset方法。

class Student(object):
    def get_age(self):
        return self.age

    def set_age(self,num):
        if num>100:
            print("wrong age")
        else:
            self.age = num

student = Student()
student.set_age(10)

但是写getset方法显然不够方便,这个时候就可以使用@property

class Student(object):

    @property
    def age():
        return self._age

    @age.setter
    def age(self,num):
        if num>100:
            print("wrong age")
        else:
            self.age = num

student = Student()
student.age = 1000

平时,我们可能使用不上age.setter,所以@property更像是调用方法的简便方法。

参考:
https://www.liaoxuefeng.com/wiki/1016959663602400/1017502538658208

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值