在Python中,如何从方法中打印当前调用堆栈(用于调试目的).
在script.py:
def f(n, memo={0:0, 1:1}):
if n not in memo:
memo[n] = sum(f(n - i) for i in [1, 2])
return memo[n]
print(f(400))
Run Code Online (Sandbox Code Playgroud)
python3.6 script.py正确打印f(400),但随之而来的python3.7 script.py是堆栈溢出。f(501)递归限制在 3.6 和3.7 中达到f(334)。
Python 3.6 和 3.7 之间发生了什么变化导致此代码提前超出了最大递归深度?