Python
Intermediate
What is Python Iterator Protocol?
The interface requiring __iter__() and __next__() methods, enabling objects to be used in for loops and other iteration contexts.
The iterator protocol is fundamental to Python's for loop, comprehensions, unpacking, and many built-in functions. An iterable implements __iter__() returning an iterator. An iterator implements __next__() returning the next value or raising StopIteration. Generators automatically implement this protocol. Custom iterators enable lazy evaluation of large datasets, infinite sequences, and custom traversal patterns. Built-in itertools module provides powerful iterator combinators (chain, islice, groupby, product). Understanding the protocol explains why range() is memory-efficient and how custom objects integrate with Python's iteration ecosystem.