Designing classes with little unique processing
In some cases, an object is a container of rather complex data, but doesn't really do very much processing on that data. Indeed, in many cases, a class can be designed that depends only on built-in Python features and doesn't require any unique method functions.
In many cases, Python's built-in container classes can cover almost all of the various use cases for us. The small problem is that the syntax for a dictionary or a list isn't quite so elegant as the syntax for attributes of an object.
How can we create a class that allows us to use object.attribute
syntax instead of object['attribute']
?
Getting ready
There are really only two cases for any kind of class design:
- Is it stateless? Does it embody a number of attributes, but never changes?
- Is it stateful? Will there be state changes for the various attributes?
A stateful design is slightly more general. We can always use a stateful implementation and avoid making any changes to the object to support...