python3之类的 __slots__ 属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3之类的 __slots__ 属性相关的知识,希望对你有一定的参考价值。

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


以上是关于python3之类的 __slots__ 属性的主要内容,如果未能解决你的问题,请参考以下文章

Python3 __slots__

py--使用__slots__

如何使用 `__slots__` 初始化属性?

Python学习之__slots__属性

Python3.7之类的属性

Python19 __slots__@property