Генераторы Ruby против генераторов Python

Я исследовал сходства / различия между генераторами Ruby и Python (известными как Enumerators в Ruby), и, насколько я могу судить, они в значительной степени эквивалентны .

Однако я заметил одно отличие: генераторы Python поддерживают метод close () , а генераторы Ruby - нет. В документации Python говорится, что метод close () выполняет следующие действия:

Вызывает GeneratorExit в точке, где функция генератора была приостановлена. Если функция генератора затем вызывает StopIteration (путем обычного выхода или из-за того, что уже закрыта) или GeneratorExit (не перехватывая исключение), close возвращается к вызывающему. "

Есть ли веская причина, по которой Ruby Enumerators не поддерживают метод close () ? Или это случайно

Есть ли веская причина, по которой счетчики Ruby не поддерживают метод close () ? Или это случайно

Есть ли веская причина, по которой счетчики Ruby не поддерживают метод close () ? Или это случайно omission?

I also discovered that Ruby Enumerators support a rewind() method yet Python generators do not...is there a reason for this too?

Thanks

20
задан horseyguy 25 September 2010 в 21:40
поделиться