委托生成器中的“yield from”语句是否自动为其委托给的子生成器加素数?

2024-05-16 21:20:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我确实需要显式地为委托\u生成器初始化,但是我不需要为子\u生成器这样做。为什么会是这种情况,'yield from'关键字组合会隐式地为它所委托的子\u生成器加素数

pep380—委托给子生成器的语法 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

Tags: thefromnonesendreturnvaluedefsome