Миф или правда
Правда ли, что одно имя — одна переменная на всю программу?
Миф
Одно имя — одна переменная на всю программу
На самом деле
Нет: локальные переменные с одинаковыми именами в разных функциях — независимые ячейки.
Область видимости — что это на самом деле
Часть программы, где действует имя переменной. Локальная объявлена внутри функции: видна только в ней и исчезает при выходе; глобальная видна во всей программе. Одинаковые имена в разных функциях — разные, независимые переменные. В Scratch то же: переменная «для всех спрайтов» или «только для этого».
Область текста программы, где имя связано со своим объектом. Python ищет имя по правилу LEGB: локальная → объемлющая → глобальная → встроенная; присваивание в функции создаёт локальное имя, если нет объявления global/nonlocal. В C++…
Аналогия: Вещи в доме: то, что в твоей комнате, видно только из неё, а вещи в прихожей — из любой комнаты.
Полное определение →Это понятие вводят примерно 15-17 лет (9-11 класс).