Python. Область видимости переменных

Сразу извините, если решение легкое. Я в этом новичек.
У меня есть функция, которая должна дополнять с вызовом значение глобальной переменной. После объявления перменной и присвоения значения, используя перменную в функции ошибка " local variable 'full' referenced before assignment"
Пробовал несколько вариантов:

global full
full = 'test'
def add(user):
    full = full + '{0.first_name}'.format(user)
    return full
ERROR: local variable 'full' referenced before assignment
global full
full = 'test'
def add(user):
    nonlocal full
    full = full + '{0.first_name}'.format(user)
    return full
ERROR:no binding for nonlocal 'full' found
full = 'test'
def add(user):
    nonlocal full
    full = full + '{0.first_name}'.format(user)
    return full
ERROR:no binding for nonlocal 'full' found

Ответы (1 шт):

Автор решения: SmellyNS

Чуть-чуть промахнулись)

full = 'test'
def add(user):
    # add не видит full
    global full
    # а теперь видит
    full = full + '{0.first_name}'.format(user)
    # меняет full (так что не обязательно его возвращать следующей строкой)
    return full

Ключ. слово global используется внутри блока, чтобы подтянуть переменную из "родительского" неймспейса

→ Ссылка