怎么才能限制class的属性,只允许添加被许可的属性 (slots)?
class Person(object):
pass
p = Person()
此时可以添加许多属性
p.name = 'Mike'
p.age = 20
p.grades = 90
如果要限制只允许添加给定的属性,那么使用__slots__
class Person(object):
def __init__(self):
pass
__slots__ = ('name', 'age') #只允许添加name和age两个属性,用tuple来定义
p = Person()
p.grades = 90 #报错,因为grades不在许可的属性之列