【发布时间】:2012-12-21 06:58:56
【问题描述】:
获取并打印外层函数变量a就可以了
def outer():
a = 1
def inner():
print a
获取外部函数数组a并追加一些东西也可以
def outer():
a = []
def inner():
a.append(1)
print a
但是,当我尝试增加整数时,它引起了一些麻烦:
def outer():
a = 1
def inner():
a += 1 #or a = a + 1
print a
>> UnboundLocalError: local variable 'a' referenced before assignment
为什么会发生这种情况,我该如何实现我的目标(增加整数)?
【问题讨论】:
-
当然,你也可以将a从outer传递到inner。
-
@sberry:这不会允许他尝试做的事情,因为它会在
inner中创建一个新的局部变量,对其所做的更改不会反映在outer中。 -
对,除非它被返回,或者 OP 无论如何只能在内部使用
a。
标签: python function variables scope