#python #function #variables
#питон #функция #переменные
Вопрос:
x=23
def printer():
print(x)
x=x 1
return x
printer()
Ошибка: UnboundLocalError: локальная переменная ‘x’, на которую ссылаются перед назначением
Комментарии:
1. Внутри функции вы не объявили x глобальным, и поэтому Python не может определить, имеете ли вы в виду глобальную переменную x или новую локальную переменную, также названную x.
Ответ №1:
Используйте ключевое слово global для устранения проблемы
def printer():
global x
print(x)
x=x 1
return x
Комментарии:
1. Спасибо, это работает. Но здесь небольшое сомнение — я уже объявил и назначил переменную x = 25 перед функцией, так зачем мне здесь использовать ключевое слово global? почему я не могу получить прямой доступ? Есть ли какие-либо правила по этому поводу в python? TIA
2. Читайте о области применения python — w3schools.com/python/python_scope.asp