@propertybr/>@XXX.setter
设置一个可读写属性
仅使用@property,设置一个只读属性
class Student(object):
@property
def score(self):
return self._score
@score.setter
def score(self, value):
if not isinstance(value, int):
raise ValueError(‘score must be an integer!‘)
if value < 0 or value > 100:
raise ValueError(‘score must between 0 ~ 100!‘)
self._score = value
使用@property后,调用函数变为函数名称的属性赋值、读取
s.score = 60 # OK,实际转化为s.set_score(60)
s.score # OK,实际转化为s.get_score()
原文:http://blog.51cto.com/106165/2153567