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