Middle
Python'da iteratorlar va generatorlar nima va ularning farqi nima?
sobes.tech AI
AIdan javob
Python'da iterator __iter__() və __next__() metodlarını həyata keçirən obyektdir. Bu, bütün məlumatları yaddaşa yükləməyə ehtiyac olmadan kolleksiyanın elementlərini ardıcıl şəkildə keçməyə imkan verir.
Generator isə, yield açar sözü və ya generator ifadələri ilə yaradılan xüsusi növ iteratordur. Generatorlər ehtiyac olduqda dəyərələri ehtiyatla hesablayır, bu da yaddaşdan qənaət edir və potensial olaraq sonsuz ardıcıllıqlarla işləməyə imkan verir.
Əsas fərqlər:
- Iterator elementləri ardıcıl şəkildə keçmək üçün ümumi interfeysdir.
- Generator
yieldistifadə edərək iteratorların yaradılmasının rahat yoludur.
Generator nümunəsi:
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-dən n-ə qədər olan ədədləri bir-bir qaytarır.