博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于生成器的问题
阅读量:6536 次
发布时间:2019-06-24

本文共 501 字,大约阅读时间需要 1 分钟。

开始始终不明白生成器的执行顺序以及取值的变化.直接上代码.

def add(n, i):    return n + idef test():    for i in range(4):        yield ig = test()for n in [2, 10]:    g = (add(n, i) for i in g)    # g = (add(n, i), add(n, i), add(n, i), add(n, i)) --> 10, 11, 12, 13    # g = (add(n, i) for i in add(n, i), add(n, i), add(n, i), add(n, i))) --> 10 + 10, 10 + 11, 10 + 12, 10 + 13print(list(g))  # 只有执行list的时候才会执行生成器,否则只是保留一个内存地址.# 生成器只能去一次# 生成器在不找他时始终不执行# 当他执行的时候,要以执行时候的所有变量值为准

 

转载于:https://www.cnblogs.com/chenrun/p/9205501.html

你可能感兴趣的文章