def add(n, i):
return n + i
def test():
for i in range(4):
yield i
g = test()
for n in [1, 10]:
# n = 1 时 g 相当于 (add(n, i0), add(n, n1), add(n, i2), add(n, i3))
# n = 10 时 g 相当于 (add(n, add(n, i0)), add(n, add(n, i1)), add(n, add(n, i2)), add(n, add(n, i3)))
g = (add(n, i) for i in g)
print(n) # n = 10
# i0 ~ i3 = 0 ~ 3
# g = (add(n, add(n, i0)), add(n, add(n, i1)), add(n, add(n, i2)), add(n, add(n, i3)))
print(list(g)) # list(g) = [20, 21, 22, 23]
|