Summary
We looked at three of the special methods for class definition. The __call__()
method is used when creating a callable. The callable is used to create functions that are stateful. Our primary example is a function that memoizes previous results.
The __enter__()
and __exit__()
methods are used to create a context manager. The context is used to handle processing that is localized to the body of a with statement. Most of our examples include input-output processing. However, Python presents a number of other situations where a localized context can come handy. will focus on creating containers and collections.
Callable design considerations and trade-offs
When designing a callable object, we need to consider the following:
The first is the API of the object. If there's a reason for the object to have a function-like interface, then a callable object is a sensible design approach. Using
collections.abc.Callable
assures that the callable API is built correctly, and it informs anyone reading...