python的@property装饰器可以把方法变成属性。
实例化类时,有时需要对实例的属性值做一些限制,可以使用@property装饰器。
#coding=utf-8
class Student(object):
score=0
def __init__(self,score):
self.score=score
@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(1)
print(s.score)
ss=Student(101) #报错