Skip to content
11 / 22

В чём разница между iterables, iterators и generators в Python?

Iterable — объект, у которого есть __iter__ и который умеет отдавать итератор (list, dict, str, range). Iterator — объект с __next__, который держит состояние обхода и выкидывает StopIteration в конце. Generator — частный случай итератора, создаваемый функцией с yield или generator-выражением; компилятор сам пишет за тебя __iter__/__next__ и сохраняет стек вызова.

В чём разница между iterables, iterators и generators в Python? | JScriptiser