Junior — Middle
Python'da generatorlarni amalga oshirish va ularni ishlatishda maxsus metodlar (dunder) ning roli nima?
sobes.tech AI
AIdan javob
Python'da __iter__(), __next__() gibi özel metodlar, generatorlar ve yineleyicilerin uygulanmasında kilit rol oynar.
Generatorler, değerler dizisi üzerinde yineleme yapmaya izin veren nesnelerdir; bunları ihtiyaç duyulduğunda hesaplarlar, hemen değil.
__iter__()nesnenin yineleyicisini döner (çoğu zaman 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 generator oluşturduğunuzda, Python otomatik olarak bu metodlara sahip bir generator 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.