Chapter 10
The Iterator Pattern
We’ve discussed how many of Python’s built-ins and idioms seem, at first blush, to fly in the face of object-oriented principles, but are actually providing access to the objects with a functional syntax. In this chapter, we’ll discuss how the for statement is actually a lightweight wrapper around a set of object-oriented design patterns. We’ll also see a variety of extensions to this syntax that automatically create even more types of object. We will cover the following topics:
-
What design patterns are
-
The iterator protocol — one of the most powerful design patterns
-
List, set, and dictionary comprehensions
-
Generator functions, and how they build on other patterns
We’ll start with an overview of what design patterns are and why they’re so important.