Posted at

``__slots__``を使ってメモリを節約

More than 5 years have passed since last update.

知らなかったのでメモ。

Pythonではデフォルトではオブジェクトのインスタンスの属性はdictを使って保存している。

この保存の仕方では、実行中に新たな属性を動的に設定できたりして良い。

だけど、少数の固定な属性を持つ小さなクラスを扱うときにはdictはメモリの無駄。

こういう時は__slots__に属性の名前を記述することでメモリを節約したほうが良い。

class Image(object):

__slots__ = ['id', 'caption', 'url']

def __init__(self, id, caption, url):
self.id = id
self.caption = caption
self.url = url
self._setup()

# ... other methods ...


参考