我想制作一个返回调用者的程序
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对尾递归没有优化,这意味着对于每一个递归步骤,堆栈都会增加,直到达到极限。然后你会得到像你得到的那样的错误消息。
您必须将递归调用转换为while循环。