python遞歸次數過多,導致報錯或者溢出問題解決。


不小心寫了個遞歸函數,在循環了六百多次的時候就報出了這個錯誤::RuntimeError: maximum recursion depth exceeded

然后改了系統設置,如下

import sys  # 導入sys模塊
sys.setrecursionlimit(10000)  # 將默認的遞歸深度修改為10000

但是,我要循環的估計得有十萬左右,想到遞歸函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞歸調用的次數過多,會導致棧溢出。

后來找到了一位博主說:

 

 所以,還有什么更好的辦法?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM