我的代码有问题。因为我无法从嵌套函数内部的外部函数访问列表。我尝试了非本地操作,但它给我一个错误“发现非本地“ a”没有绑定。
def func(x, y):
nonlocal a
nonlocal b
if x >= 0 and y >= 0:
if x == 0 and y == 0:
return (func(x - 1, y - 1) + a[x] * b[y])
else:
return max(func(x - 1, y - 1) + a[x] * b[y], func(x - 2, y) + a[x - 1] * a[x], func(x, y-2) + b[y - 1] * b[y])
elif x >= 1 and y < 0:
return func(x - 2, y) + a[x - 1] * a[x]
elif y >= 1 and x < 0:
return func(x, y-2) + b[y - 1] * b[y]
else:
return 0
def tvshows(a, b):
x = func(len(a) - 1, len(b) -1)
return x
test_a = [23,45, 12, 16]
test_b = [33,13, 17, 18]
tvshows(test_a, test_b)
有人知道这个问题可能是什么吗? 最好的问候
答案 0 :(得分:0)
nonlocal
要求变量已被定义
我在您的代码中看不到任何嵌套函数。但是您可以在嵌套函数(而非外部函数)中使用nonlocal
来引用先前定义的列表。