class Student():
def init(self, stuid, name, score1, score2, score3):
self.stuid = stuid
self.name = name
self.score1 = score1
self.score2 = score2
self.score3 = score3
def get_score1(self):
return self._score1
def set_score1(self, score):
if 0 <= score <= 100:
self._score1 = score
else:
raise ValueError("score not in [0,100]")
def get_score2(self):
return self._score2
def set_score2(self, score):
if 0 <= score <= 100:
self._score2 = score
else:
raise ValueError("score not in [0,100]")
def get_score3(self):
return self._score3
def set_score3(self, score):
if 0 <= score <= 100:
self._score3 = score
else:
raise ValueError("score not in [0,100]")
score1 = property(get_score1, set_score1)
score2 = property(get_score2, set_score2)
score3 = property(get_score3, set_score3)
def returnMe(self):
return "%s, %s, %i, %i, %i" % (
self.stuid,
self.name,
self.score1,
self.score2,
self.score3)
这段代码报递归引用了
自定义描述符,__init__里面就是赋值给了描述符,property里面为啥不用
经测试,property无法在初始化时候判断的,不是不用,是做不到