Иногда возникает необходимость в использовании глобальных переменных в функциях. Глобальная переменная — это такая переменная, которая определена вне функции и может быть использована в любой части программы, включая функции.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Типичная проблема
Возьмем пример программы, которая использует функцию для изменения глобальной переменной.
x = 10 def change_x(): x = 5 change_x() print(x)
В данном случае ожидается, что переменная x
изменит свое значение на 5
после вызова функции change_x()
. Однако, когда программа выводит значение x
с помощью print(x)
, оно все еще равно 10
. Почему так происходит?
Пояснение
Проблема возникает из-за области видимости переменных в Python. Когда в функции создается переменная с тем же именем, что и глобальная переменная, Python предполагает, что это новая локальная переменная, которая существует только внутри функции.
Решение
Для того чтобы изменить глобальную переменную внутри функции, необходимо использовать ключевое слово global
перед именем переменной.
x = 10 def change_x(): global x x = 5 change_x() print(x)
Теперь, когда функция change_x()
вызывается, она изменяет глобальную переменную x
на 5
, и print(x)
выводит 5
.
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Использование глобальной переменной в других функциях
Глобальные переменные также можно использовать в других функциях. Например:
x = 10 def print_x(): print(x) print_x()
В этом случае функция print_x()
выводит значение глобальной переменной x
, которое равно 10
.
Но стоит помнить, что чрезмерное использование глобальных переменных может усложнить отладку и поддержку программы, поскольку они могут быть изменены в любом месте программы.
Добавить комментарий