递归传递lambda

gym*_*y42 1 python

我正在尝试传递lambda。

def summation(n, term):
    if (n == 0):
        return
    else:
        return summation(n - 1, term) + term

print(summation(5, lambda x: x + 1))            
Run Code Online (Sandbox Code Playgroud)

据我了解,lambda x : x + 1将成为termterm将评估到n + 1的功能,但是这是行不通的。谁能向我解释?

orl*_*rlp 5

A lambda是一个函数。所以term是一个功能。如果要term评估,则n + 1必须使用nterm(n)

您还有另一个问题,您有一个空的return,它将自动变为return None。你是说return 0