# -*- coding: utf-8 -*-
class Student(object):
def __init__(self, name, score):
self.name = name
#定义一个同名的实例属性
self.score = score*1.0
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):
#打印self.score 结果是调用了get方法
print self.score
if self.score<60:
return 'C'
elif self.score<80:
return 'B'
else:
return 'A'
@grade.setter
def grade(self,score):
self
s = Student('Bob', 59)
print s.grade
s.score = 60
print s.grade
s.score = 99
print s.grade
1、实例属性score是不是就被覆盖了,使用s.score时候不能调用它了。有没有办法使用普通的实例属性
2、对于实例属性是不是不能用@property,我使用的时候会报错