Python论坛  - 讨论区

标题:local variable 'a' referenced b

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哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号