All objects that provide a specific functionality have certain methods that facilitate that behavior, for example, you can create an object of type worker and expect it to have the
submit_work(function, kwargs), and is
_completed() methods. Now, we can expect all objects that have these methods to be usable as workers in any application portion. Similarly, the Python language has defined some methods that are needed to add a certain functionality to an object. If an object possesses these methods, it has that functionality.
We will discuss two very import protocols: iteration protocol, and context protocol.
For iteration protocol, objects must possess the
__iter__ method. If the object possesses ...