class Person(object):def __init__(self, name,age):#属性直接对外暴露#self.age = age#限制访问self.__age = ageself.__name = name'''def getAge(self):return self.__agedef setAge(self,age):if age<0:age = 0self.__age = age'''#方法名为受限制的变量去掉双下划线@propertydef age(self):return self.__age@age.setter #去掉下划线 setterdef age(self,age):if age<0:age = 0self.__age = age@propertydef name(self):return self.__name@name.setter #去掉下划线 setterdef name(self,name):self.__name = name
per = Person("tom",18)
#属性直接对外暴露
#不安全,没有数据的过滤
# per.age = -10
# print(per.age)#使用限制访问,需要自己些get 和set 方法
#
# per.setAge(15)
# print(per.getAge())per.age = 100 #相当于调用setAge
print(per.age)#相当于调用getAge
per.name = "liu"
print(per.name)#peoprety:可以让你对手限制访问你的属性使用点语法