Доступ к внешнему элементу функции внутри вложенного элемента - PullRequest
0 голосов
/ 12 мая 2019

У меня проблема с моим кодом. Потому что я не могу получить доступ к списку из внешней функции внутри вложенной. Я попытался нелокальный, но он дает мне ошибку "не обязательный для нелокального" а "найдено.

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)

Кто-нибудь знает, в чем может быть проблема? С наилучшими пожеланиями

1 Ответ

0 голосов
/ 12 мая 2019

nonlocal требует, чтобы переменная была определена до

Я не вижу вложенных функций в вашем коде. Но вы можете использовать nonlocal внутри вложенной функции (не внешней функции) для ссылки на ранее определенный список.

...