知らなかったのでメモ。 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 ...