Локальные и глобальные переменные
Где переменная создана — там она и «живёт». Понимание этого снимает частые вопросы «почему не видно значение».
Локальные: живут внутри функции
Переменная, созданная внутри функции, локальная — она существует только во время работы функции и снаружи не видна. Это хорошо: функции не мешают друг другу, используя одинаковые имена.
def f():
x = 5 # локальная
print(x)
f()
# print(x) вызвал бы ошибку: x снаружи не существует
Глобальные: видны везде
Переменная, созданная вне функций, глобальная — её можно читать внутри функций. Но изменять глобальную изнутри функции по умолчанию нельзя: попытка присвоить создаст новую локальную с тем же именем.
Как быть
Хорошая практика — не менять глобальные из функций, а передавать значения через аргументы и возвращать через return. Так код понятнее и меньше скрытых зависимостей. Ключевое слово global есть, но пользоваться им стоит редко.
Частые вопросы
Почему переменная из функции не видна снаружи? Она локальная и существует только внутри функции.
Как вернуть значение наружу? Через return, а не через глобальные переменные.
Начать игру бесплатно