类
类的声明
Slot 类
本质上, Slot
是用 __slots__
在类中定义,并列出了变量。对于不在 __slots__
的变量或属性,将不会被定义。此外, Slot
类可能没有默认值。
添加这些限制的好处是可以进行某些优化。
例如, Slot
类占用的内存更少,这个可以使用 Pympler
from dataclasses import dataclass
@dataclass
class SimplePosition:
name: str
lon: float
lat: float
@dataclass
class SlotPosition:
__slots__ = ['name', 'lon', 'lat']
name: str
lon: float
lat: float
>>> from pympler import asizeof
>>> simple = SimplePosition('London', -0.1, 51.5)
>>> slot = SlotPosition('Madrid', -3.7, 40.4)
>>> asizeof.asizesof(simple, slot)
(440, 248)