property的用法

class Test(object):
    def __init__(self):
        self.__sum = 100
    def setNum(self,newNum):
        self.__num = newNum
    def getNum(self):
        return self.__num
    
    num = property(getNum,setNum)

t = Test()
t.setNum(50)
print(t.getNum())


tt = Test()
tt.num = 50
print(tt.num) 
"""  property相当于对方法进行封装,开发者在对数据设置的时候更方便。
     property()方法的参数必须先写get方法,再写set方法。"""

开发property的目的就是为了安全,不让用户在类的外面直接访问类的属性,所以,在类里面进行初始化属性的时候,都写成私有的,这样就可以保证在类的外面不能直接调用,想要使用的话,必须经过这些属性的get和set方法。同样java和c#都是有这种思想在里面。 

# 方法二,装饰器
class Test(object):
    def __init__(self):
        self.__age = 1
    @property
    def getAge(self):
        return self.__age 
    @getAge.setter
    def AGE(self,newAge):
        if 0 < newAge <= 100:
            self.__age = newAge


t = Test()
t.AGE = 30
print(t.AGE)


# 输出结果:30
    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值