如何确定导致递归错误的原因

时间:2018-04-06 09:57:23

标签: python

在我的代码上我得到RecursionError: maximum recursion depth exceeded 并且只有我从追溯中获得的线索是File "q.py", line 523, in __init__ self.background = Background(source='images/space.png') 重复了30次。我查了一下这条线,但看不出有什么不妥。我还应该提到这个错误是突然发生的。代码完美无瑕。

有没有办法确定究竟是什么导致它?我知道递归通常意味着某些函数正在调用自身,但我没有找到任何东西。无法共享代码,因为它非常广泛。

1 个答案:

答案 0 :(得分:0)

您的递归过于深入 - 这可能是您的中断条件或您的算法及其运行的数据的问题。如果你“不使用”递归 - 你的代码有问题,如果没有看到它的MVCE,我们就无法帮助。

您可以增加递归大小,请参阅What is the maximum recursion depth in Python, and how to increase it?

如果您的algorythm适用于较小的数据集而且只有较大的数据集崩溃,那么您应该搜索一个非递归的解决方案。

在没有复制算法的mvce的情况下提供更好的建议,并且创建此错误的数据很难。

阅读How to debug small programs (#2) - 看看你是否能以某种方式找到代理部分来解决并修复它。