【问题标题】:python maximum recursion depth exceeded超出python最大递归深度
【发布时间】:2020-01-26 07:27:34
【问题描述】:

我想为任何 java 项目创建一个返回调用者和被调用者的程序。
我有这个方法:

def searchformethod(methodcalls,method):
    for call in methodcalls:
        if method in call[4]:
           calll=call[0],call[2]
           callerncallee.methodcaller.append(calll)
           callerncallee.searchformethod(methodcalls,call[2])

方法调用中的每个调用都包含 ("class",".","caller",".","callee")
我需要一个递归来让每个方法在小型项目的情况下都能正常工作,
但在大型项目的情况下我得到了这个

 callerncallee.searchformethod(methodcalls,call[2])
 [Previous line repeated 989 more times]
 RecursionError: maximum recursion depth exceeded

【问题讨论】:

    标签: python recursion


    【解决方案1】:

    Python 没有对尾递归进行优化,这意味着对于每个递归步骤,堆栈都会增加,直到达到限制。然后您会收到与您一样的错误消息。

    您必须将递归调用转换为 while 循环。

    【讨论】:

      猜你喜欢
      • 2011-12-31
      • 2020-07-13
      • 2021-02-07
      • 2017-03-18
      • 2015-04-15
      • 1970-01-01
      • 2013-12-01
      • 2021-12-11
      相关资源
      最近更新 更多