返回对void Python函数的递归调用
假设一个函数有一个void返回类型(即它不返回值,所以它的返回值是返回对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);返回无。我
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