使用__slots__限制类添加属性
class Stuendt(object):
__slots__ = ('name', 'age', 'score') 用tuple定义允许绑定的属性名称
s = Student() #创建类的实例
s.name = 'chenguang' #绑定类的name属性
s.age = 25 #绑定类的age属性
s.score = 59 #绑定类的score属性
s.grade = 2
Traceback (most recent call last):
File "" , line 1, in
AttributeError: 'Student' object has no attribute 'grade'
ps1:由于grade 没有放在__slots__中,所以不能绑定grade属性,试图绑定grade属性会得到一个AttributeError的错误
ps2:__slots__定义的属性仅对当前的类有效果,对继承的子类是不起作用的
class GraduateStudent(Student):
pass
g = GraduateStudent()
g.grade = 100