你好,
我对以下内容感到困惑:
v = {}
v[-1] = lambda x: 1
v[0] = lambda x: x
for k in range(1, n): # k = 1...n-1
v[k] = lambda x: 2*x*v[k-1](x) - v[k-2](x)
当我调用v[3](1)
时,会生成一个错误maximum recursion depth exceeded
,而这个:
v = {}
v[-1] = lambda x: 1
v[0] = lambda x: x
v[1] = lambda x: 2*x*v[1-1](x) - v[1-2](x)
v[2] = lambda x: 2*x*v[2-1](x) - v[2-2](x)
v[3] = lambda x: 2*x*v[3-1](x) - v[3-2](x)
这个程序运行得很好。我无法弄清楚Python在第一种情况下的投诉是什么。建议会很有帮助。
dis
模块,dis.dis(v[1])
会得到这样一行有趣的代码:10 LOAD_GLOBAL 1 (k)
,它表明在循环期间,k的值没有被计算。 - njzk2