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 используется внутри блока, чтобы подтянуть переменную из "родительского" неймспейса