python函数的递归调用 递归,一个函数在其内部调用自身 计算 n!=n*(n-1)*…1 (n的阶乘) def fact_item(n,s=1): if n == 1: return s return fact_item(n-1,s*n) #尾调用优化 print(fact_item(5)) 在递归调用时要注意栈的溢出为了防止栈溢出,需要进行尾调用优化 尾调用优化:在函数的最后一部调用下一次的递归,并且,return语句不能包含表达式,这样就不必保存本次状态,加速运行,防止栈溢出 如,上图,在return 中再次调用自身,这里的n-1和s*n会在函数运行前执行,可以添加 更多请访问 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431756044276a15558a759ec43de8e30eb0ed169fb11000