【发布时间】:2014-06-27 05:07:58
【问题描述】:
我认为list.extend 和列表上的 "+=" 基本上做同样的事情 - 扩展列表而不创建新列表。
我希望下面的代码可以打印[42, 43, 44, 45, 46],但我得到的是UnboundLocalError: local variable 'x' referenced before assignment
为什么我会收到此错误?区别在哪里?
def f():
x.extend([43, 44])
def g():
x += ([45, 46])
x = [42]
f()
g()
print x
我在 python2.7.3 和 python3.4.0 中试过这个。
【问题讨论】:
-
@200OK:不,不是真的。这就是为什么 Python 认为
x在f中是全局的,而在g中是局部的。 -
@MartijnPieters 这个怎么样:Python global list modification inside and outside of functions
-
@200OK:找到更规范的版本。
标签: python