python3之类的 __slots__

发布时间:2019-09-27 07:09:51编辑:auto阅读(1824)

    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"        # 添加一个其他的属性,会报错告诉你对象没有这个属性,必须添加列表内的属性


关键字