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