python превышена максимальная глубина рекурсии - PullRequest
0 голосов
/ 26 января 2020

Я хочу создать программу, которая будет возвращать вызывающую и вызываемую информацию для любого 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])

каждый вызов в methodcalls содержит ("класс", " . "," caller ",". "," callee ")
мне нужна рекурсия, чтобы получить каждый метод, который работает нормально в случае небольших проектов,
, но в случае больших проектов я получил это

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

1 Ответ

0 голосов
/ 26 января 2020

Python не имеет оптимизации для хвостовой рекурсии, это означает, что для каждого шага рекурсии стек увеличивается до достижения предела. Затем вы получаете сообщение об ошибке, как вы получили.

Вы должны преобразовать рекурсивный вызов в какое-то время l oop.

...