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
    

 

你可能感兴趣的:(python)