Chapter 3. Attribute Access, Properties, and Descriptors
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, which is the simplest, but least sophisticated option.
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 control over attributes. This can allow us to write very unusual attribute...