Sobes.tech
Junior — Middle

Python-da generatorların həyata keçirilməsində və istifadə olunmasında xüsusi metodların (dunder) rolu nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Python-da xüsusi metodlar (dunder metodlar), məsələn, __iter__(), __next__(), generatorlar və iteratorların həyata keçirilməsində əsas rol oynayır.

Generatorlar, dəyərlər ardıcıllığında iterasiya etməyə imkan verən obyektlərdir; onları ehtiyac olduqda hesablayır, dərhal deyil.

  • __iter__() obyektin iteratorunu geri qaytarır (tez-tez obyekt özü).
  • __next__() ardıcıllığın növbəti elementini geri qaytarır və ya elementlər tükəndikdə StopIteration istisnasını atır.

yield açar sözündən istifadə edən funksiya ilə generator yaratdığınız zaman, Python avtomatik olaraq bu metodlara malik generator obyekti yaradır.

Dunder metodlar istifadə edilərək sadə bir iteratorun tətbiqi nümunəsi:

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)

Beləliklə, dunder metodlar iterasiya protokolunu təmin edir və onları dövrlərdə və digər iterasiya obyektləri ilə işləyən quruluşlarda istifadə etməyə imkan verir.