尾遞歸是指,在函數返回的時候,調用自身自己,而且,return語句不能包含表達式。這樣,編譯器或者解釋器就能夠把尾遞歸作優化,使遞歸自己不管調用多少次,都只佔用一個棧幀,不會出現棧溢出的狀況。函數
格式以下:優化
def fact_iter(num, product): if num == 1: return product return fact_iter(num - 1, num * product)
return 中不是表達式,而是函數自己code