Должен ли генератор Python генерировать исключение, когда больше нет элементов для выдачи? - PullRequest
6 голосов
/ 24 февраля 2010

Должен ли генератор Python генерировать исключение, когда больше нет элементов для выдачи?

Какой?

Ответы [ 2 ]

9 голосов
/ 24 февраля 2010

Единственный раз, когда я знаю, что вам нужно вручную вызывать StopItered, это когда вы реализуете метод next () для класса, чтобы сигнализировать, что итератор завершен. Для генераторов (функций с оператором yield в них) конец функции или оператор возврата должным образом вызовет StopIteration для вас.

9 голосов
/ 24 февраля 2010

Не обязательно, но может вызвать StopIteration .

Более нормальный способ завершить итерацию - позволить функции завершиться и вернуться естественным образом или использовать оператор return. Это приведет к тому, что от вашего имени будет подан стоп-запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...