Python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class实例能添加的属性。
eg:
class Student(object): #先创建一个学生类 __slots__ = ('name','age') class GraduateStudent(Student): #GraduateStudent继承Student类 __slots__ = ('score',) pass s = Student() s.name = 'Michael' s.age = 25 try: s.score = 99 #由于’score’没有被放到__slots__中,所以不能绑定score
#属性,试图绑定score将得到AttributeError的错误。 except AttributeError as e: print('AttributeError:', e) # g = GraduateStudent() #这里输入90可以输出score # g.score = 99 # g.age = 88 # print(g.age) # print('g.score=', g.score)