__slots__的作用:
限制只有定义的一些属性才可以动态添加,以元组的方式定义能给对象添加的属性,除此之外的属性不能添加,对动态添加属性可以做出一些限制
下面有个小例子,来看一下__slots__的使用
# -*- coding:utf-8 -*-
class People(object):
__slots__ = ('name','age','phone')
def __init__(self,weight):
super(People,self).__init__()
# self.weight = weight
#当做限制之后,添加weight,出现以下错误:AttributeError: 'People' object has no attribute 'weight'
p1 = People(80)
#动态添加属性
p1.name = '张三'
p1.sex = '男'
p1.age = 22
print(p1)
#当限制中元组中没有sex这个属性时,添加sex出现以下错误:AttributeError: 'People' object has no attribute 'sex'