为了到达限制的目的,class在定义的时候,允许一个特殊的__slots__变量,来限制该class实例能够添加的属性
1 >>>class Student(object): 2 __slots__ = ("name", "age") ###用tuple定义允许绑定的属性名称 3 4 >>>s = Student() 5 >>>s.name = "micheal" 6 >>>s.age = 28 7 >>>s.score = 99 8 会抛出AttributeError: "Student " object has no attribute "score"
使用__slots__要注意,该变量定义的属性仅对当前类实例起作用,
对继承的子类是不起作用的。