为什么我的代码没有结束

2024-04-19 12:49:20 发布

您现在位置:Python中文网/ 问答频道 /正文

假设是函数合成。 我认为问题在于funcs中只剩下一个函数。我希望它是一个空元组,但它没有像那样识别它,并进入无限循环

谢谢你!:)

def compose(*funcs):
    if len(funcs)==0:
        return lambda x:x
    f=funcs[0]
    return lambda x: f(compose(funcs[1:])(x))

Tags: lambda函数composelenreturnifdef元组
1条回答
网友
1楼 · 发布于 2024-04-19 12:49:20

您的compose函数被定义为使用*args。这意味着当在lambda表达式中调用时,它总是接受一个参数,funcs列表永远不会为空。这就是它不断重复的原因。你知道吗

您想将定义更改为def compose(funcs)(推荐),或者用compose(*funcs[1:])调用它。你知道吗

相关问题 更多 >