返回对void Python函数的递归调用

返回对void Python函数的递归调用,python,function,Python,Function,假设一个函数有一个void返回类型(即它不返回值,所以它的返回值是None),这两者之间有区别吗 def f(x): return f(x_) if not stopping 及 其中,stopping是某种停止条件,x是f?的一些输入,两者之间似乎没有区别。两者都返回None,堆栈相同 这两者似乎没有区别。两者都返回None,堆栈相同 只要f始终返回None,就没有区别。如果一个函数没有显式的return语句,它会隐式地返回None。对,因此如果不停止,第二个函数就是f(x_u);返回无。我

假设一个函数有一个void返回类型(即它不返回值,所以它的返回值是
None
),这两者之间有区别吗

def f(x): return f(x_) if not stopping


其中,
stopping
是某种停止条件,
x
f

的一些输入,两者之间似乎没有区别。两者都返回
None
,堆栈相同

这两者似乎没有区别。两者都返回
None
,堆栈相同

只要
f
始终返回
None
,就没有区别。如果一个函数没有显式的
return
语句,它会隐式地返回
None
。对,因此如果不停止,第二个函数就是
f(x_u);返回无
。我想知道堆栈调用是否不同,尽管没有TCE,我假设没有相关的问题:嗯,两者都有。等价于
语法错误
。在任何情况下,Python函数都没有返回类型的概念。Python是一种动态类型化语言。根据你如何解释你的意思,它们不会是等价的。但是如果你想让调用者访问递归调用的值,你需要
返回
。很可能,如果它是
None
,您不需要它,但您可能需要它(例如
None
是一个基本情况)。只要
f
始终返回
None
,就没有区别。如果一个函数没有显式的
return
语句,它会隐式地返回
None
。对,因此如果不停止,第二个函数就是
f(x_u);返回无
。我想知道堆栈调用是否不同,尽管没有TCE,我假设没有相关的问题:嗯,两者都有。等价于
语法错误
。在任何情况下,Python函数都没有返回类型的概念。Python是一种动态类型化语言。根据你如何解释你的意思,它们不会是等价的。但是如果你想让调用者访问递归调用的值,你需要
返回
。很可能,如果它是
None
,您不需要它,但您可能需要它(例如
None
是基本情况)。
def f(x): f(x_) if not stopping