February 2019
Intermediate to advanced
672 pages
16h 50m
English
One of the main problems with callbacks is that they require you to break the program execution into small functions that will be invoked when a certain event takes place. As we saw in the earlier sections, callbacks can quickly become cumbersome.
Coroutines are another, perhaps a more natural, way to break up the program execution into chunks. They allow the programmer to write code that resembles synchronous code but will execute asynchronously. You may think of a coroutine as a function that can be stopped and resumed. A basic example of coroutines is generators.
Generators can be defined in Python using the yield statement inside a function. In the following example, we implement the range_generator function, which produces ...