2024-04-19 12:49:20 发布
网友
假设是函数合成。 我认为问题在于funcs中只剩下一个函数。我希望它是一个空元组,但它没有像那样识别它,并进入无限循环
谢谢你!:)
def compose(*funcs): if len(funcs)==0: return lambda x:x f=funcs[0] return lambda x: f(compose(funcs[1:])(x))
您的compose函数被定义为使用*args。这意味着当在lambda表达式中调用时,它总是接受一个参数,funcs列表永远不会为空。这就是它不断重复的原因。你知道吗
compose
*args
funcs
您想将定义更改为def compose(funcs)(推荐),或者用compose(*funcs[1:])调用它。你知道吗
def compose(funcs)
compose(*funcs[1:])
您的
compose
函数被定义为使用*args
。这意味着当在lambda表达式中调用时,它总是接受一个参数,funcs
列表永远不会为空。这就是它不断重复的原因。你知道吗您想将定义更改为
def compose(funcs)
(推荐),或者用compose(*funcs[1:])
调用它。你知道吗相关问题 更多 >
编程相关推荐