Подскажите пожалуйста почему функция не выводит в консоль значение 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Проблема исчезает, если закомментировать строку
s = 'Reset global variable'но мне всё равно не понятен механизм
question@mail.ru
·