python如何防止棧溢出
說明
使用遞歸函數的優點是邏輯簡單清晰,缺點是過深的調用會導致棧溢出。
1、調用棧溢出的方法是通過尾遞歸優化,事實上尾遞歸和循環的效果是一樣的。
2、把循環看成是一種特殊的尾遞歸函數也是可以的。
實例
deffact(n):
returnfact_iter(n,1)
deffact_iter(num,product):
ifnum==1:
returnproduct
returnfact_iter(num-1,num*product)
#fact(5)的調用過程
===>fact_iter(5,1)
===>fact_iter(4,5)
===>fact_iter(3,20)
===>fact_iter(2,60)
===>fact_iter(1,120)
===>120
以上就是python防止棧溢出的方法,希望對大家有所幫助。更多Python學習教程請關注IT培訓機構:千鋒教育。