@property装饰器作用:既能检查参数,又可以以类似属性这样简单的方式来访问类的变量。
对于类的方法,装饰器一样起作用。
python内置的@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
s = Student()
s.score = 100
print(s.score) # 100
s.score = 101 # 报错 ValueError: score must between 0~100!