По шагам:
1️⃣Переменная x объявляется в глобальной области видимости и получает значение 1.
2️⃣При вызове функции func интерпретатор встречает команду вывода переменной x.
3️⃣Поскольку внутри функции нет своей локальной переменной с таким именем, Python по правилу разрешения областей видимости (LEGB) поднимается на один уровень выше.
4️⃣В глобальной области находится нужная переменная, и на экран штатно выводится 1.
Почему это важно
Это базовое правило работы с областями видимости. Важно твёрдо помнить, что чтение глобальных переменных работает прозрачно и «из коробки». Иногда новички ищут здесь подвох, ожидая ошибку, но проблемы начинаются только в момент попытки изменить такую переменную.
Post #4711
862
- ✍ 3