Count () возвращает другое количество записей, чем var_dump ()

Это новая функция в Python 3.3 (как отмечает комментарий, она даже не работает в 3.2). Подобно return в генераторе уже давно эквивалентен raise StopIteration(), return в генераторе теперь эквивалентен raise StopIteration(). По этой причине исключение, которое вы видите, должно быть напечатано как StopIteration: 3, и это значение доступно через атрибут value для объекта исключения. Если генератор делегирован использовать синтаксис (также новый) yield from, это результат. Подробнее см. PEP 380 .

def f():
    return 1
    yield 2

def g():
    x = yield from f()
    print(x)

# g is still a generator so we need to iterate to run it:
for _ in g():
    pass

Отправляет 1, но не 2.

0
задан Eric 13 April 2012 в 12:35
поделиться