An object is a collection of features, including methods and attributes. The default behavior of the object class involves setting, getting, and deleting named attributes. We often need to modify this behavior to change the attributes available in an object.
This chapter will focus on the following five tiers of attribute access:
- We'll look at built-in attribute processing.
- We'll review the @property decorator. A property extends the concept of an attribute to include the processing defined in method functions.
- We'll look at how to make use of the lower-level special methods that control attribute access: __getattr__(), __setattr__(), and __delattr__(). These special methods allow us to build more sophisticated attribute processing.
- We'll also take a look at the __getattribute__() method, which provides more granular...