Middle
Python'da iteratorler ve jeneratörler nedir ve aralarındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Python'da iterator, __iter__() ve __next__() yöntemlerini uygulayan bir nesnedir. Bu, tüm verileri belleğe yükleme ihtiyacı olmadan koleksiyonun öğelerini ardışık olarak dolaşmayı sağlar.
Generator ise, yield anahtar kelimesi veya jeneratör ifadeleri kullanılarak oluşturulan özel bir iterator türüdür. Generatorler, ihtiyaç duyulduğunda tembelce değerleri hesaplar, bu da belleği tasarruf eder ve potansiyel olarak sonsuz dizilerle çalışmaya olanak tanır.
Ana farklar:
- Iterator, öğeleri ardışık olarak dolaşmak için genel bir arayüzdür.
- Generator,
yieldkullanarak iterator oluşturmanın kullanışlı bir yoludur.
Bir generator örneği:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Burada, count_up_to 1'den n'ye kadar sayıları birer birer döndürür.