example-code-2e/17-it-generator/yield_delegate_fix.py
2021-02-14 20:58:46 -03:00

25 lines
464 B
Python

""" Example adapted from ``yield_delegate_fail.py``
The following program performs a simple abstraction over the process of
yielding.
"""
# tag::YIELD_DELEGATE_FIX[]
def f():
def do_yield(n):
yield n
x = 0
while True:
x += 1
yield from do_yield(x)
# end::YIELD_DELEGATE_FIX[]
if __name__ == '__main__':
print('Invoking f() now produces a generator')
g = f()
print(next(g))
print(next(g))
print(next(g))