Вопрос проверяет, понимаете ли вы разделение ролей между “источником перебора” и “механизмом выдачи следующего элемента”.
Короткий ответ
__iter__() возвращает итератор — объект, из которого можно получать элементы по одному.__next__() возвращает следующий элемент из итератора.
Когда элементы закончились, __next__() должен выбросить StopIteration.
В for обычно сначала вызывается __iter__(), а затем много раз __next__().
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.