Подскажите пожалуйста почему функция не выводит в консоль значение s
s = "I'm global variable"
def foo():
print(s)
s = 'Reset global variable'
foo()
Я предполагал, что когда интерпретатор дойдёт до строки print(s), он поймёт, что в области видимости функции foo такой переменной не существует. Следовательно начнёт искать её во внешней области видимости, но там она есть.
Однако в результате в консоль выводится следующее сообщение об ошибке:
Traceback (most recent call last):
File "index.py", line 7, in <module>
foo()
File "index.py", line 4, in foo
print(s)
UnboundLocalError: local variable 's' referenced before assignment