Junior — Middle
Python'da jeneratörlerin uygulanmasında ve kullanımında özel metodların (dunder) rolü nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Python'da özel metodlar (dunder metodlar) olan __iter__(), __next__(), gibi metodlar, jeneratörlerin ve yineleyicilerin uygulanmasında kilit rol oynar.
Jeneratörler, değerler dizisi üzerinde yineleme yapmaya izin veren nesnelerdir; bunları hemen hesaplamak yerine ihtiyaç duyulduğunda hesaplarlar.
__iter__()nesnenin yineleyicisini döner (genellikle nesne kendisidir).__next__()dizinin bir sonraki öğesini döner veya öğeler tükendiğindeStopIterationistisnasını fırlatır.
yield anahtar kelimesiyle bir fonksiyon kullanarak bir jeneratör oluşturduğunuzda, Python otomatik olarak bu metodlara sahip bir jeneratör nesnesi oluşturur.
Dunder metodlar kullanılarak basit bir yineleyici uygulamasına örnek:
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
for number in CountUpTo(3):
print(number)
Bu şekilde, dunder metodlar yineleme protokolünü sağlar ve bunlar, döngülerde ve diğer yineleyici nesnelerle çalışan yapılar içinde kullanılmasını mümkün kılar.