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
@property
def grade(self):
if self.__score >= 80:
return 'A'
elif self.__score >= 60:
return 'B'
else:
return 'C'
s = Student('Bob', 59)
print s.grade
s.score = 60
print s.grade
s.score = 99
print s.grade
1、在定义grade(self)的时候,我用的self.__score,最后运行结果也对了,是不是这样写是没错的?(因为第15行的赋值是吧?)
2、在定义grade(self)的时候,答案中用的self.score,这个self.score是从哪来的,从前面的第八行?