yield笔试题

def add(a, b):
return a + b

def test():
for r in range(4):
yield r

g = test()

g = (add(10, i) for i in (add(10, i) for i in g))
print(list(g))

def test():
for i in range(4):
yield i
g = test() # 初始化生成器对象
for n in [1, 10]:
g = (add(n, i) for i in g)
"""
第一次for循环
g = (add(n, i) for i in g)
第二次for循环
g = (add(10, i) for i in (add(10, i) for i in g))

生成器表达式内部的代码只有在迭代取值的时候才会执行
而在for循环中,取值是不确定的,以最后一次for循环为主
"""

posted @ 2021-11-29 09:02  弑悟  阅读(10)  评论(0)    收藏  举报