Junior — Middle
Роли махсус усулҳо (dunder) дар иҷрои генераторҳо ва истифодаи онҳо дар Python чист?
sobes.tech AI
Ҷавоб аз AI
በPython ውስጥ ልዩ ዘዴዎች (dunder methods) እንደ __iter__(), __next__() በመፈፀም የጀነሬተሮችና እንቅስቃሴ አሰፋላሊ ሚና እንደሚጫወቱ አሳያል።
ጀነሬተሮች እንደ እቃ የሚያስችሉት እንደ እቃ የሚያስተላለፉት እና በፍጥነት ሲሰሩ እንደሚያስችሉ እንደ እቃ ናቸው።
__iter__()የእቃውን እንቅስቃሴ ይመለሳል (ብዙ ጊዜ እርሱ ራሱ ነው).__next__()ቀጣይ እቃ ይመለሳል ወይም ሲያገኙ የStopIterationልብስ ይወጣል።
ስለዚህ በyield ቃል በመጠቀም በሚፈልጉት ሁኔታ የጀነሬተሮች እቃ በሚሰራ ሁኔታ ይፈጥራል።
ቀላል የእንቅስቃሴ አሰፋላሊ ምሳሌ በdunder መንገዶች ማከናወን:
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)
በዚህ መልኩ, የdunder መንገዶች የእንቅስቃሴ ስርዓትን ይሰጣሉ እና በዚህ መሠረት የጀነሬተሮች እና በሌሎች እንቅስቃሴ እቃዎች ላይ ማጠቃለያ ይሰጣሉ።