Приветствую
Вопрос из разряда теоретических. Не понимаю логику работы простой функции.
Имеется:
– глобальная переменная
– функция
– локальная переменная
Пример:
def x():
print(a)
a = 2
a = 1
x()
Серьезно, не пойму логику. Имеется переменная
а со значением
1. В функции
х вызывается значение глобальной переменной
a. Если же далее попытаться затенить глобальную переменную
а, то возникает ошибка, гласящая о том, что пытаюсь обратиться к локальной переменной до присвоения ей значения. Но я же пытаюсь сначала вывести значение глобальнрой переменной, а потом затенить глобальную переменную.
Мне понятно, что правило такое, но верно ли оно логически?
Могли бы разъяснить ситуацию?