Глава 13 · Автоматизация с помощью функций

Глобальные и локальные переменные

Где «живёт» переменная и кто может её увидеть — важное правило, которое избавит от многих загадочных ошибок.

Переменные внутри функций

Переменная, созданная внутри функции, называется локальной — она существует только пока функция выполняется и недоступна снаружи:

lokalnye_peremennye.py
def moya_funkciya():
    message = "Я живу только внутри функции"
    print(message)

moya_funkciya()
print(message)   # NameError: message не определена здесь

Возвращаем локальные переменные

Чтобы значение, вычисленное внутри функции, стало доступно снаружи, его нужно вернуть через return — это единственный «официальный» способ передать что-то из функции наружу.

Глобальные переменные

Глобальная переменная объявлена вне всех функций — и доступна для чтения внутри любой из них:

globalnye_peremennye.py
ver = "1.0"   # глобальная переменная

def pokazat_versiyu():
    print(f"Версия программы: {ver}")   # чтение глобальной переменной — работает

pokazat_versiyu()
Изменить глобальную переменную изнутри функции — не так просто
Присваивание ver = "2.0" внутри функции создаст новую локальную переменную ver, а не изменит глобальную. Для настоящего изменения нужно ключевое слово global — но в реальном коде такое встречается редко: гораздо чище вернуть новое значение через return.
Практика в Jupyter Notebook
13-05-oblast-vidimosti.ipynb · локальные и глобальные переменные
Открыть ноутбук →