发现一个问题,讲解中两种方法只是在set时做了限制,可是在定义实例时还是可以输入大于100的值啊?
class Student(object):
def __init__(self, name, score):
self.name = name
self.__score = score
@property
def score(self):
return self.__score
@score.setter
def score(self, score):
if score < 0 or score > 100:
raise ValueError('invalid score')
self.__score = score
s = Student('Bob',666) #这里并没有限制,后面完全可以输出的啊?
print s._Student__score