Python використовує
dict
для зберігання атрибутів екземпляра об’єкта. Це корисно, коли у вас є довільна кількість атрибутів. У невеликих класах це вже проблема: dict
витрачає багато оперативної пам’яті.
class Foo(object): __slots__ = ('foo',)
class Bar(object): pass
def get_set_delete(obj):
obj.foo = 'foo'
obj.foo
del obj.foo
def test_foo():
get_set_delete(Foo())
def test_bar():
get_set_delete(Bar())
Python не може просто так виділити статичний обсяг пам’яті для зберігання всіх атрибутів, тож треба використати slots
: одразу вказуємо всі очікувані атрибути і знижуємо використання оперативки майже на 40-50%.
#slots #dict // #practice // Python