所以我正在制作递归函数的图表以包围递归,我注意到显然每个函数都在最后执行返回?
另一个问题,一个函数究竟返回什么?传递给它的所有参数(假设有多个参数)?还是某种价值?
(t只是执行实际绘图的实体)
def koch(t, n):
"""Draws a koch curve with length n."""
if n<30:
fd(t, n)
return
m = n/3.0
koch(t, m)
lt(t, 60)
koch(t, m)
rt(t, 120)
koch(t, m)
lt(t, 60)
koch(t, m)
答案 0 :(得分:3)
快速回答:否
答案很长:Python中不需要return
语句,并且在没有返回的情况下到达函数代码的末尾将自动使函数return None
如果找到,则返回提供给return
语句的对象。如果未找到return
语句,则返回None
。
答案 1 :(得分:3)
所以我正在制作递归函数的图表以包围递归,我注意到显然每个函数都在最后执行返回?
return 本身只是意味着从调用堆栈,程序计数器中弹出调用框架恢复到拨打电话之前的状态等等。根据您的评论,它看起来像位,如“回溯”但请注意 - 与回溯相反 - 功能具有的副作用,不会被还原/撤消。例如,附加到列表,绘制线,写入文件等不会被还原。这是递归中所需的行为。
现在有时返回某个值很有用。例如:
def foo(x,y):
return x+y
此处foo
不仅返回调用者,而且首先评估x+y
并返回结果,以便您可以声明z = foo(2,3)
。因此,此处foo
被调用,评估2+3
并返回5
并分配给z
。
另一个问题,一个函数究竟返回什么?传递给它的所有参数(假设有多个参数)?
在Python 中,所有函数都返回一个值。如果您指定它:
return <expression>
评估<expression>
部分并返回该值。如果您指定:
return
或根本没有return
(但是你到达函数的末尾),将返回None
。