Sobes.tech
Middle

Итераторҳо ва генераторҳо дар Python чистанд ва фарқияти онҳо дар чист?

sobes.tech AI

Ҷавоб аз AI

Итератор дар Python объектест, ки усулҳои __iter__() ва __next__()-ро иҷро мекунад. Он имкон медиҳад, ки унсурҳои маҷмӯаро ба таври пайдарпай гузаронед, бе зарурати бор кардани ҳамаи маълумотҳо ба хотир.

Генератор як навъи махсуси итератор аст, ки бо истифода аз функсияҳо бо калимаи калидии yield ё изразҳои генераторӣ сохта мешавад. Генераторҳо бо эҳтиёҷ пурсамар арзишҳоро ҳисоб мекунанд, ки ин ёдгории хотирасозиро сарфа мекунад ва имкон медиҳад бо пайдарпаҳои эҳтимолан беохир кор кардан.

Тафовутҳои асосӣ:

  • Итератор интерфейси умумӣ барои гузаронидани унсурҳо дар пайдарпаӣ мебошад.
  • Генератор роҳи қулайи эҷоди итераторҳо бо истифода аз yield мебошад.

Масалан генератор:

def count_up_to(n):
    count = 1
    while count <= n:
        yield count
        count += 1

for number in count_up_to(5):
    print(number)

Ин ҷо, count_up_to генераторест, ки шумораҳоро аз 1 то n, яке поя поя, бармегардонад.