@property
把属性装饰成get方法
给属性赋值时,会自动调用@property装饰的方法
只设置属性的@property 时,属性为只读
@score.setter
把属性装饰成set方法
给属性赋值时,会自动调用@score.setter装饰的方法
1 class Student(object): 2 def __init__(self,name,score): 3 self.name = name 4 self.__score = score 5 6 @property 7 def score (self): 8 return self.__score 9 10 @score.setter 11 def score (self,score): 12 self.__score = score 13 14 s = Student('Bob', 59) 15 s.score = 1000 16 print(s.score)
这样score()既能检查参数,又可以用类似属性这样简单的方式来访问类的变量
具体参考廖雪峰