连你也同归于人海 2021-06-10 12:20 采纳率: 100%
浏览 18
已采纳

求解如何理解以下递归式生成器的运行过程

def faltten(nested):
    try:
        for sublist in nested:
            for element in faltten(sublist):
                yield element
    except TypeError:
        yield nested
  • 写回答

2条回答 默认 最新

  • CSDN专家-黄老师 2021-06-10 14:04
    关注

    其实上述代码等价于

    def faltten(nested):
        try:
            for sublist in nested:
                return faltten(sublist)
        except TypeError:
            yield nested

    生成器是一个函数,而且函数的参数都会保留。 迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的。

    其实你梳理每次循环的时候,递归函数传递参数变化情况就行了

    如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部