Sobes.tech
Middle

Pythonдогу итераторлор жана генераторлор эмне жана алардын айырмасы эмнеде?

sobes.tech AI

AIден жооп

Pythonда iterator — бул __iter__() жана __next__() методдорун ишке ашырат объект. Ал коллекциянын элементтерин кезектешип өтүүгө мүмкүндүк берет, бардык маалыматтарды бир эле учурда эс тутумга жүктөбөстөн.

Generator — бул атайын түрдөгү iterator, ал yield ачкыч сөзү же генератордук билдирүүлөр аркылуу түзүлөт. Generatorler керектөө боюнча жай эсептейт, бул эс тутумду үнөмдөйт жана потенциалдуу чексиз тизмектер менен иштөөгө мүмкүндүк берет.

Негизги айырмачылыктар:

  • Iterator — бул элементтерди кезектешип өтүү үчүн жалпы интерфейс.
  • Generator — yield аркылуу iterator түзүүнүн ыңгайлуу жолу.

Generator мисалы:

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ге чейинки сандарды бирден кайтарган generator.