我的問題是:為什么無限遞回會崩潰,而不是無限回圈?它們都感覺像正常的永遠迭代器,但一個崩潰而另一個沒有。我正在尋找硬體/低級回應。在使用 Python 在 Jupyter 上進行實驗時,我通常會遇到 stackoverflow 錯誤。另外,當我指的是低級回應時,我指的是計算機硬體(RAM、CPU)中發生的導致無限遞回崩潰的事情,而不是無限迭代。
uj5u.com熱心網友回復:
因為無限遞回不斷將遞回呼叫存盤在堆疊中(這是您的應用程式持有的記憶體之一),所以它最終會完全填滿堆疊,因此您會得到經典的堆疊溢位錯誤。
在無限回圈中,您不存盤任何內容,并且經常只是不斷更新變數之類的東西,這不會比這些變數已經占用的記憶體更多,所以什么都不會中斷。但是,如果您在回圈內的記憶體中添加內容,則可能會導致無限回圈中斷,例如將元素添加到回圈內的串列中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470922.html
