元组子类缺少 __slots__ (SLOT001)
派生自 flake8-slots 代码检查器。
作用
检查缺少 __slots__
定义的 tuple
子类。
为什么这不好?
在 Python 中,__slots__
属性允许您显式定义类可以拥有的属性(实例变量)。 默认情况下,Python 使用字典来存储对象的属性,这会产生一些内存开销。 但是,当定义了 __slots__
时,Python 会使用更紧凑的内部结构来存储对象的属性,从而节省内存。
tuple
的子类继承了内置 tuple
类的所有属性和方法。 由于元组通常是不可变的,因此除了 tuple
类提供的属性之外,它们不需要其他属性。 为 tuple
的子类定义 __slots__
可以防止为每个实例创建字典,从而减少内存消耗。
示例
建议改为