Chapter 6. Generators and Coroutines – Infinity, One Step at a Time

A generator is a specific type of iterator that generates values through a function. While traditional methods build and return a list of items, a generator will simply yield every value separately at the moment when they are requested by the caller. This method has several benefits:

  • Generators pause execution completely until the next value is yielded, which makes them completely lazy. If you fetch five items from a generator, only five items will be generated, so no other computation is needed.
  • Generators have no need to save values. Whereas a traditional function would require creating a list and storing all results until they are returned, a generator only needs to store a single ...

Get Mastering Python now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.