Я исследовал сходства / различия между генераторами Ruby и Python (в Ruby они известны как Enumerators
), и, насколько я могу судить, они в значительной степени эквивалентны.
Однако я заметил одно отличие в том, что Python Generators поддерживают метод close()
, тогда как Ruby Generators нет. Говорят, что из документации по Python метод close()
делает следующее:
Поднимает GeneratorExit в точке, где функция генератора была приостановлена. Если функция генератора затем вызывает StopIteration (путем обычного выхода или из-за того, что оно уже закрыто) или GeneratorExit (не перехватывая исключение), close возвращает его вызывающему. "
Есть ли веская причина, по которой Ruby Enumerators
не поддерживает метод close()
? Или это случайный
упущение?
Я также обнаружил, что Ruby Enumerators
поддерживает метод rewind()
, но генераторы Python не ... есть ли причина для этого тоже?
Спасибо