Sobes.tech
Junior — Middle

Python итераторларында __next__ әдісі қалай жұмыс істейтінін түсіндіре аласыз ба?

sobes.tech AI

AI-дан жауап

Python-да __next__ әдісі — итератор протоколының негізгі элементі. Ол итератордан келесі элементті алу үшін шақырылады. Егер әлі де элементтер болса, әдіс келесі элементті қайтарады; егер элементтер аяқталса, ол StopIteration қателігін шақыруы керек, бұл итерацияның аяқталғанын көрсетеді.

Қарапайым итератор мысалы:

class Counter:
    def __init__(self, limit):
        self.current = 0
        self.limit = limit

    def __iter__(self):
        return self

    def __next__(self):
        if self.current < self.limit:
            self.current += 1
            return self.current
        else:
            raise StopIteration

for num in Counter(3):
    print(num)  # Нәтижесінде 1, 2, 3 шығады

Осылайша, __next__ коллекция элементтеріне ретті түрде қол жеткізуді немесе мәндерді генерациялауды басқарады.