>>> import sys
>>> print(sys.version)
2.4.4
>>> b = 11
>>> def foo2():
... a = b
... print a, b
...
>>> foo2()
11 11
>>> def foo3():
... a = b
... b = 12
... print a, b
...
>>> foo3()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in foo3
UnboundLocalError: local variable 'b' referenced before assignment
>>> def foo4():
... global b
... a = b
... b = 12
... print a, b
...
>>> foo4()
11 12
질문>foo3
에서, 당신은 왜 그것을 선언하지 않고 전역 변수에 액세스 할 수 있지만 여전히 수정할 수 없습니다.왜 전역 값을 읽을 수는 있지만 수정할 수는 없습니까?
이렇게하면 이해가됩니다. – delnan