Sobes.tech
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, yield kullanarak 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.