• 关于生成器函数递归

    08/01 加瓦 4 评论

这个生成器递归为什么只会递归一次呢?

1 1 收藏


直接登录
最新评论
  • 生成器的概念就是记忆程序上一次执行的位置,并在下一次执行时从这个位置再往下执行, 试试next方法

  • 这是个比较典型的错误,get1(sum)只是返回了一个generator对象而已。

    你试试改成

  • get1(sum) 返回一个生成器, 迭代后执行获取返回值,尽量不在生成器里面使用迭代

  • 因为你的 get1(sum) 并没有yeild 任何东西。这个函数调用的作用是生成另外一个 生成器。

    说起来太抽象,你跑一下我改过的code就明白了:

    def get1(x):
    sum = x + 1
    yield sum
    if sum > 3:
    pass
    else:
    for i in get1(sum):
    print(“got you”, i)

    for i in get1(1):
    print(i)