首页 > 解决方案 > 在另一个函数中包含收益

问题描述

我有两个函数,generatorA()调用generatorB()里面吧。我想在调用时获得所有收益generatorB(),但我只知道0,1,2 如何获得0,1,2,3,4,5

generatorA()是一个回调函数。所以我不能说,它什么时候会被调用。

def generatorA():
    mylist = range(4,6)
    for i in mylist:
        yield i


def generatorB():
    generatorA()

    mylist = range(3)
    for i in mylist:
        yield i

for i in generatorB():
    print(i)

标签: pythoniteratorgeneratoryieldcoroutine

解决方案


使用yield from

def generatorA():
    return range(4,6)  

def generatorB():
    mylist = range(3)
    for i in mylist:
        yield i

    yield from generatorA()

for i in generatorB():
    print(i)

输出

0
1
2
4
5

推荐阅读