Приведите пожалуйста мне метафору и аналогию, что такое global и nonlocal функции
Я новичок в программировании и изучении языка python, и никак не могу усвоить, что такое функции и как их юзать, объясните пожалуйста понятным языком, желательно с приведением метафор и аналогий , заранее всем спасибо
Ответы (1 шт):
Всё в Python — это объект. И у каждого объекта есть имя.
Но в одной программе может быть несколько одинаковых имён, причём не конфликтующих. Достигается это благодаря областям видимости.
Пример:
# Глобальная область видимости
# Коробка на улице
box = 0
# Мой дом — отдельная область видимости
def my_house():
# Локальная область видимости функции my_house
# Нелокальная область видимости функции closet
# Коробка в прихожей моего дома
box = 1
# Шкаф в моём доме — отдельная область видимости
def closet():
# Локальная область видимости функции closet
# Коробка в шкафу в моём доме
box = 2
В программе выше есть три переменные box, поэтому инструкция print(box) будет выводить разные значения в зависимости от того, где её выполнять.
С помощью ключевых слов global и nonlocal мы можем обратиться к конкретной переменной: глобальной (box = 0) или нелокальной (на область видимости выше, но не в глобальную).
В моём примере обращаться к нелокальной переменной box = 1 можно только из функции closet.