...

/

Bloating Instance dicts

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 sys
class SomeClass:
def __init__(self):
self.some_attr1 = 1
self.some_attr2 = 2
self.some_attr3 = 3
self.some_attr4 = 4
def dict_size(o):
print(sys.getsizeof(o.__dict__))
o1 = SomeClass()
o2 = SomeClass()
dict_size(o1)
dict_size(o2)
del o1.some_attr1
o3 = SomeClass()
dict_size(o3)
dict_size(o1)

Let’s try again…in a new code widget:

Press + to interact
import sys
class SomeClass:
def __init__(self):
self.some_attr1 = 1
self.some_attr2 = 2
self.some_attr3 = 3
self.some_attr4 = 4
def dict_size(o):
print(sys.getsizeof(o.__dict__))
o1 = SomeClass()
o2 = SomeClass()
dict_size(o1)
o1.some_attr5 = 5
o1.some_attr6 = 6
dict_size(o1) # as expected
dict_size(o2)
o3 = SomeClass()
dict_size(o3)
...