Реализация FTP-клиента в C # с использованием TCP

Возвращаемое значение не игнорируется, но только генераторы дают значения , а return просто заканчивает генератор, в этом случае раньше. Продвижение генератора никогда не достигает инструкции yield в этом случае.

Всякий раз, когда итератор достигает «конца» значений для выхода, появляется StopIteration . Генераторы не являются исключением. Однако с Python 3.3 любое выражение return становится значением исключения:

>>> def gen():
...     return 3
...     yield 2
... 
>>> try:
...     next(gen())
... except StopIteration as ex:
...     e = ex
... 
>>> e
StopIteration(3,)
>>> e.value
3

Используйте функцию next() для продвижения итераторов вместо прямого вызова .__next__():

print(next(x))
0
задан nrcrast 12 April 2012 в 20:00
поделиться