GeneratorExit в генераторе PythonPython

Программы на Python
Anonymous
 GeneratorExit в генераторе Python

Сообщение Anonymous »

Я написал тестовую программу для генератора Python. Но я получил ошибку, которая не ожидалась. И я не знаю, как это объяснить. Позвольте мне показать вам код:

Код: Выделить всё

def countdown(n):
logging.debug("Counting down")
while n > 0:
try:
yield n
except GeneratorExit:
logging.error("GeneratorExit")
n -= 1

if __name__ == '__main__':
c = countdown(10)
logging.debug("value: %d", c.next())
Я думал, что все должно работать без проблем. Но результат:

Код: Выделить всё

# ./test.py
[2015/06/16 04:10:49] DEBUG    - Counting down
[2015/06/16 04:10:49] DEBUG    - value: 10
[2015/06/16 04:10:49] ERROR    - GeneratorExit
Exception RuntimeError: 'generator ignored GeneratorExit' in  ignored
Почему ошибка в последней строке. Я не знаю, почему я вызвал исключение GeneratorExit. Есть ли что-то о генераторе, который я пропустил? Я также ввел код в интерактивную оболочку Python, и все в порядке. Как это могло случиться?

Подробнее здесь: https://stackoverflow.com/questions/308 ... -generator

Вернуться в «Python»