2014-12-06 34 views
0

有沒有什麼好的方法可以將堆放置在堆上以防止堆棧溢出?堆內存上的Python遞歸

當然,有方法來存儲自己的堆棧和放置函數的變量(框架),只是模擬遞歸,並且,通過所有外觀,我正在尋找像裝飾器,它會自動執行的東西。

+1

「色狼」?真?或者你的意思是'預防'? – nishparadox 2014-12-06 14:55:03

+0

哈哈,謝謝,修正 – mingaleg 2014-12-06 14:57:56

+0

把它改成尾遞歸。你可以保持恆定的空間,或者你最終明確地維護堆棧。 – CMCDragonkai 2015-09-11 06:55:33

回答

-1

這裏有幾個選項。

  1. 使用無堆棧的Python,因爲名稱暗示它沒有這個問題。
  2. 建立自己的堆棧,而不是使用遞歸
  3. 不推薦增加遞歸限制https://docs.python.org/2/library/sys.html#sys.setrecursionlimit
+0

1.這正是我需要的,但需要CPython。 2.我在我的問題中提到過這個問題。這是一個解決方案,但實際上,我正在尋找類似於語法糖的東西。 3.無論如何,我受限於系統堆棧大小,並且希望限制在堆的大小 – mingaleg 2014-12-06 15:08:14

+0

在這種情況下,重寫代碼或更改遞歸限制是您的選擇。 – Wolph 2014-12-06 15:46:44