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

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

 

其实上述代码等价于

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

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

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

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

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632