Bloating Instance dicts
We'll cover the following...
Bloating is painful in-person and in Python.
⚠️ The following codes are meant for Python 3.8. Other Python 3 versions may vary a little.
Press + to interact
import sysclass SomeClass:def __init__(self):self.some_attr1 = 1self.some_attr2 = 2self.some_attr3 = 3self.some_attr4 = 4def dict_size(o):print(sys.getsizeof(o.__dict__))o1 = SomeClass()o2 = SomeClass()dict_size(o1)dict_size(o2)del o1.some_attr1o3 = SomeClass()dict_size(o3)dict_size(o1)
Let’s try again…in a new code widget:
Press + to interact
import sysclass SomeClass:def __init__(self):self.some_attr1 = 1self.some_attr2 = 2self.some_attr3 = 3self.some_attr4 = 4def dict_size(o):print(sys.getsizeof(o.__dict__))o1 = SomeClass()o2 = SomeClass()dict_size(o1)o1.some_attr5 = 5o1.some_attr6 = 6dict_size(o1) # as expecteddict_size(o2)o3 = SomeClass()dict_size(o3)
...