Sobes.tech
Junior — Middle
96

Bir nesne üzerinde yineleme sırasında __iter__ metodunun tam olarak ne zaman tetiklendiği?

AI'dan gelen yanıt

sobes.tech yapay zeka

Python'da __iter__ yöntemi, bir nesne üzerinde yineleme başlatıldığında çağrılır, örneğin bir for döngüsü kullanıldığında. Özellikle, yorumlayıcı for element in obj: yapısını bulduğunda, obj.__iter__() çağırır ve bir yineleyici (iterator) elde eder.

Bu yineleyici, bir __next__ yöntemi uygulamalı ve bu yöntem, dizinin bir sonraki öğesini döndürür. Yineleme, __next__ StopIteration istisnasını fırlatana kadar devam eder.

Örnek:

class MyRange:
    def __init__(self, n):
        self.n = n
    def __iter__(self):
        self.current = 0
        return self
    def __next__(self):
        if self.current < self.n:
            val = self.current
            self.current += 1
            return val
        else:
            raise StopIteration

for i in MyRange(3):
    print(i)

Burada, döngüye girişte MyRange(3).__iter__() çağrılır, bu da bir yineleyici nesne (bu durumda kendisi) döndürür ve ardından __next__ çağrılır ve öğeler alınır.