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.