История изменений
Исправление tailgunner, (текущая версия) :
$ cat a1.py
def main():
test_var
def subfunc():
global test_var
test_var = 'check'
subfunc()
main()
print test_var
$ python a1.py
Traceback (most recent call last):
File "a1.py", line 10, in <module>
main()
File "a1.py", line 2, in main
test_var
NameError: global name 'test_var' is not defined
До оператора global управление вообще не доходит. Таки что ты хотел сказать? Скажи словами, а не примером кода.
Я похоже ошибался, global берёт не ближайшую в области видимости, а самую дальнюю. Это не то, что я хотел, это даже адово
Не самую дальнюю, а глобальную. Не адово, а задумано так.
Исходная версия tailgunner, :
$ cat a1.py
def main():
test_var
def subfunc():
global test_var
test_var = 'check'
subfunc()
main()
print test_var
$ python a1.py
Traceback (most recent call last):
File "a1.py", line 10, in <module>
main()
File "a1.py", line 2, in main
test_var
NameError: global name 'test_var' is not defined
До оператора global управление вообще не доходит. Таки что ты хотел сказать? Скажи словами, а не примером кода.