... continued

This lesson continues the discussion on yield-from.

We'll cover the following...

Returning Values from Yield from

yield from can also receive the value returned by the subgenerator. Consider the example below. The nested_generator() returns the value 999 and is printed by the outer_generator().

def nested_generator():
    i = 0
    while i < 5:
        i += 1
        yield i
    
    # return a value from the sub-generator
    return 999


def outer_generator():
    nested_gen = nested_generator()
    # outer generator receives the return value of the sub-generator
    ret_val = yield from nested_gen
    print("received in outer generator: " + str(ret_val))


if __name__ == "__main__":

    gen = outer_generator()

    for item in gen:
        print(item)

...