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
要想继续限制就需要再在子类也加入限制
本文介绍Python中__slots__的作用及用法,详细解释如何通过__slots__限制类实例能添加的属性,并指出其对当前类实例的限制作用以及对继承子类的影响。
2158

被折叠的 条评论
为什么被折叠?



