我有以下代码:
def aoeu():
r = lambda: 5
s = r
r = lambda: s() * 6
s = r
r = lambda: s() // 2
print(r())
运行时,出现错误:
File "/Users/nyap/tasks/spreadsheet/spreadsheet/aoeu.py", line 10, in <lambda>
r = lambda: s() * 6
^^^
[Previous line repeated 993 more times]
RecursionError: maximum recursion depth exceeded
使用
s = copy.deepcopy(r)
时也会发生同样的事情,甚至:
def s():
return r()
和:
def s(r):
return r()
为什么?有没有办法修复它,这样由于实际代码中存在循环,因此在不引入另一个变量的情况下就不会发生这种情况?
这是使用 python-3.12.6
也许我们应该让变量(r,s)的名称更清楚。
def aoeu():
# r = lambda: 5
# s = r
# r = lambda: s() * 6
# s = r
# r = lambda: s() // 2
s1 = lambda: 5
s2 = lambda: s1() * 6
r = lambda: s2() // 2
print(r())