Coroutines
The idea of a coroutine is to have a function, whose execution can be suspended at a given point in time, to be later resumed. By having this kind of functionality, a program might be able to suspend a part of the code, in order to dispatch something else for processing, and then come back to this original point to resume.
As we already know, generator objects are iterables. They implement __iter__()
and __next__()
. This is provided by Python automatically so that when we create a generator object function, we get an object that can be iterated or advanced through the next()
function.
Besides this basic functionality, they have more methods so that they can work as coroutines (PEP-342). Here, we will explore how generators evolved into coroutines to support the basis of asynchronous programming before we go into more detail in the next section, where we will explore the new features of Python and the syntax that covers programming asynchronously....