August 2018
Intermediate to advanced
366 pages
10h 14m
English
The Bunch class inherits dict, mostly as a way to provide a context where values can be stored, then most of the work is done by __getattribute__ and __setattr__. So, for any attribute that is retrieved or set on the object, they will just retrieve or set a key in self (remember we inherited from dict, so self is in fact a dictionary).
This allows the Bunch class to store and retrieve any value as an attribute of the object. The convenient feature is that it can behave both as an object and as a dict in most contexts.
For example, it is possible to find out all the values that it contains, like any other dictionary:
>>> b.items()
dict_items([('a', 5)])
It is also able to access those as attributes:
>>> b.c = 7 >>> b.c 7 >>> ...