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əStopIterationistisnası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.