1.使用_slots_
限制实例的属性,只允许对stu类添加name和age属性
方法:
class stu(object):
__slots__=('name','age')
s=stu()
s.name='小沈'
s.age=19
print(s.name)
print(s.age)
s.score=99
小沈
19
#s.score会报错,因为score没有放在_slots_中
注:_slots_定义的只能对当前类的实例起作用,对继承的子类不起作用
如
class stu(object):
__slots__=('name','age')
#继承的子类
class grade(stu):
pass
s=stu()
s.name='小沈'
s.age=19
# s.score=99
print(s.name)
print(s.age)
#print(s.score)
g=grade()
g.score=99
print(g.score)
结果
小沈
19
99
要想继续限制就需要再在子类也加入限制