Олег Марков
Локальные и глобальные переменные в Python
Введение
Локальные и глобальные переменные — основа управления состоянием в Python. От понимания их работы зависит, как функция взаимодействует с данными, как избежать конфликтов и ошибок при модификации переменных.
В этой статье мы разберемся, что такое локальные и глобальные переменные, как они работают, и как правильно управлять их использованием.
Если вы хотите детальнее изучить управление переменными в Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Локальные переменные
Локальная переменная создается внутри функции и существует только в её области видимости:
def greet():
name = "Alice" # локальная переменная
print(name)
greet() # Alice
# print(name) # Ошибка, name не определена вне функцииОсобенности:
- Создаются при вызове функции.
- Уничтожаются после завершения функции.
- Не видны вне функции.
Глобальные переменные
Глобальная переменная создается на уровне модуля и доступна в любой функции:
counter = 0 # глобальная переменная
def increment():
global counter
counter += 1
increment()
print(counter) # 1Особенности:
- Видны во всех функциях модуля.
- Для изменения нужно использовать ключевое слово
global. - Не рекомендуется злоупотреблять для больших проектов — лучше использовать аргументы функций.
Взаимодействие локальных и глобальных переменных
Если в функции создается переменная с тем же именем, что и глобальная, она перекрывает глобальную (shadowing):
x = 10
def func():
x = 5 # локальная, не влияет на глобальную
print(x)
func() # 5
print(x) # 10Для изменения глобальной переменной используйте global:
x = 10
def func():
global x
x += 5
func()
print(x) # 15Частые ошибки
- Попытка изменить глобальную переменную без
global. - Использование переменной до её объявления.
- Перезапись встроенных функций.
Часто задаваемые вопросы
Можно ли использовать локальную переменную вне функции? Нет, она существует только внутри функции.
Можно ли обойтись без глобальных переменных? Да, лучше передавать значения через аргументы функций и возвращаемые результаты.
Что делать при конфликте имен локальной и глобальной переменной? Использовать разные имена или явно применять
global, если требуется изменить глобальную переменную.
Заключение
Локальные и глобальные переменные помогают управлять состоянием программы. Понимание правил их создания и использования позволяет писать чистый код и избегать неожиданных ошибок.
Для системного изучения переменных и их областей видимости в Python рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев