Я просто играл с Python и наткнулся на кое-что интересное, чего не совсем понял. Код выглядит следующим образом:
a = 1
def function():
print(a)
function()
print(a)
Здесь a - глобальная переменная, и я использовал ее в своей функции, и результат был:
1
1
Я смог использовать глобальную переменную. переменная локально в моей функции без использования global a
в моей функции.
Затем я продолжил эксперименты с этим:
a = 1
def function():
a = a+1
print(a)
function()
print(a)
Когда я запустил этот код, появилась ошибка и в нем говорилось, что перед назначением была сделана ссылка на локальную переменную a
. Я не понимаю, как раньше он распознал, что a была глобальной переменной без global a
, но теперь мне нужно global a
вот так
a = 1
def function():
global a
a = a+1
print(a)
function()
print(a)
, чтобы этот код работал. Может кто-нибудь объяснить это несоответствие?