2014-12-06 33 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