What is an Iterator?

An iterator in Python is an object that implements two methods: __iter__() and __next__(). The __iter__() method returns the iterator object itself and is called once at the beginning of an iteration. The __next__() method returns the next value from the sequence and raises a StopIteration exception when there are no more items to return.

Define the Iterator Class:

  • __init__: The constructor initializes the maximum value (max_n) and the current value (current), which starts at 0.
  • __iter__: This method returns the iterator object itself. It is called once at the beginning of the iteration.
  • __next__: This method calculates the square of the current value, increments the current value, and returns the result. If the current value exceeds max_n, it raises a StopIteration exception to signal the end of the iteration.

Why Use Custom Iterators?

Custom iterators allow you to:

  • Encapsulate complex iteration logic.
  • Maintain state between iterations.
  • Generate values on the fly (lazy evaluation), which can be more memory-efficient for large datasets.

How to Build a basic Iterator in Python?

Iterators are a fundamental concept in Python, allowing you to traverse through all the elements in a collection, such as lists or tuples. While Python provides built-in iterators, there are times when you might need to create your own custom iterator to handle more complex data structures or operations. In this article, we will explore how to build a basic iterator in Python from scratch.

Similar Reads

What is an Iterator?

An iterator in Python is an object that implements two methods: __iter__() and __next__(). The __iter__() method returns the iterator object itself and is called once at the beginning of an iteration. The __next__() method returns the next value from the sequence and raises a StopIteration exception when there are no more items to return....

Example 1: Building a Basic Custom Iterator

Let’s build a basic iterator that generates a sequence of square numbers. We’ll start by creating a class that implements the iterator protocol....

Example 2: Building a Fibonacci Iterator

We’ll create an iterator that generates Fibonacci numbers up to a specified limit....

Contact Us