Оператор «yield from» в делегирующем генераторе автоматически заполняет субгенератор, которому он делегирует? - PullRequest
0 голосов
/ 12 июня 2019

Мне нужно явно заправить Delegating_generator, однако мне не нужно делать это для sub_generator.Почему в этом случае комбинация ключевого слова yield from неявно заполняет субгенератор, которому она делегируется?

PEP 380 - Синтаксис для делегирования субгенератору https://www.python.org/dev/peps/pep-0380/

def caller(return_value):
    delegating_gen = delegating_generator(return_value)
    next(delegating_gen) # priming the delegating generator

    # Here send some values to the subgenerator
    delegating_gen.send('some data for the subgenerator')

    delegating_gen.send(None) # terminate the subgenerator
    return return_value

def delegating_generator(return_value):
    while True:
        return_value = yield from sub_generator()

def sub_generator():
    total = 0
    while True:
        value = yield
        if value is None:
            break
        total += value
    return total
...