2012年10月03日 星期三 10:10
code1
>>> def foo():
... a = 1
... def bar():
... b=2
... print a + b
... bar()
...
...
>>> foo()
3
code2
>>> def foo():
... a = 1
... def bar():
... b=2
... a = a + b
... print a
... bar()
...
>>> foo()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 7, in foo
File "<stdin>", line 5, in bar
UnboundLocalError: local variable 'a' referenced b
为何code2不能得到正确的结果?请解释一下?
2012年10月19日 星期五 09:47
你可以看看 http://docs.python.org/release/2.4/ref/global.html。
python的全局变量如果未使用global关键字声明的话,可以直接读取,但是不能赋值。
如果需要给全局变量赋值的话,需要使用global关键字。
>>> def foo(): ... a = 1 ... def bar(): ... global a ... b=2 ... a = a + b ... print a ... bar() ... >>> foo()
Zeuux © 2024
京ICP备05028076号