>>> s = Student()
>>> s.set_score(98)
Traceback (most recent call last):
File "<pyshell#114>", line 1, in <module>
s.set_score(98)
File "E:/Python/Projects/Exercise_v2.0/Exercise_slots.py", line 12, in set_score
self._score = value
AttributeError: 'Student' object has no attribute '_score'
# 对象中没有_score属性
查看源代码
class Student(object):
__slots__ = ('name', 'age', 'tel', 'sex', 'ID')
def get_score(self):
return self._score
def set_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
Zflyee
查看源代码
发现
__slot__
能够限制方法里面的属性。 解决方案