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

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

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

2条回答 默认 最新

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

    其实上述代码等价于

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

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

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

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

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

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题