python(__slots__的作用)

__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'


你可能感兴趣的:(python(__slots__的作用))