Sobes.tech
Junior — Middle

Do czego służy metoda __next__ w iteratorach Pythona?

sobes.tech AI

Odpowiedź od AI

Metoda __next__ w iteratorach Pythona służy do pobierania kolejnego elementu sekwencji. Wywołanie next() na iteratorze Pythona wywołuje jego metodę __next__, która zwraca następny element. Jeśli nie ma więcej elementów, metoda powinna rzucić wyjątek StopIteration, aby zasygnalizować koniec iteracji.

Przykład implementacji prostego iteratora:

class CountUpTo:
    def __init__(self, max):
        self.max = max
        self.current = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.current >= self.max:
            raise StopIteration
        self.current += 1
        return self.current

counter = CountUpTo(3)
for number in counter:
    print(number)  # Wypisze 1, 2, 3