Порівняння генераторів з об'єктами класу Iterator
Головна перевага генераторів – це їхня простота. Набагато менше шаблонного коду треба написати порівняно з реалізацією об'єкта класу Iterator, і цей код набагато простіший і зрозуміліший. Наприклад, ця функція і клас роблять те саме.
Loading...
Однак за цю простоту доводиться платити: генератори можуть бути тільки односпрямованими ітераторами. Їх не можна перемотати після старту ітерації. Це також означає, що той самий генератор не можна використовувати кілька разів: генератор необхідно перестворювати щоразу, знову викликавши функцію генератора.