python3之类的 __slots__

2020-01-06 17:32:19 浏览数 (1)

1. 作用

  1. 限定一个类创建的实例只能有固定的实例属性(实例变量),不允许对象添加列表以外的实例属性

  2. 防止用户因错写属性名称而发生程序错误

2. 说明

  1. __slots__ 属性是一个列表,列表的值是字符串

  2. 含有__slots__属性的类所创建的实例对象没有__dict__属性,即此实例不用字典来存储属性

例如:

class Students:

__slots__ = ["name","age","score"]

def __init__(self,n,a,s):

self.name,self.age,self.score= n,a,s

s1 = Students("calabash","23","90")

s1.speed = "30"        # 添加一个其他的属性,会报错告诉你对象没有这个属性,必须添加列表内的属性

0 人点赞