1、尾調用的關鍵
就是在於是在函數的最後一步去調用別的函數,最後一步調用,有什麼好處呢?
根據函數即“變量”的定義,定義a函數,a內調用b,b內調用c,在內存中會形成一個調用記錄,又稱“調用幀",用於保存調用位置和內部變量等信息,即a->b->c,直到c返回給b,c的調用記錄纔會消失,b返回給a,b的調用記錄纔會消失,a返回結果,a的調用記錄纔會消失,所有的調用結果都是”先進後出“,形成了一個”調用棧“
2、尾調用實例
(1)尾調用
def bar(n):
return n
def foo(m)
y=bar(m)
return y
(2)非尾調用
def Bar(n):
return n
def foo(m):
return bar(m)+1
注意:函數的最後一步不一定是最後一行,例如if else函數