相关疑难解决方法(0)

不明白为什么会发生UnboundLocalError

我在这做错了什么?

counter = 0

def increment():
  counter += 1

increment()
Run Code Online (Sandbox Code Playgroud)

上面的代码抛出了一个UnboundLocalError.

python scope global-variables

153
推荐指数
5
解决办法
18万
查看次数

Python列表+ = iterable的行为是否记录在任何地方?

看起来在Python中,list += x适用于任何可迭代的x:

In [6]: l = []

In [7]: l += [1]

In [8]: l += (2, 3)

In [9]: l += xrange(5)

In [10]: l
Out[10]: [1, 2, 3, 0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

这种行为记录在哪里吗?

为了与之形成对比list + x,后者只有在x同样的情况下才有效list.这在文档中有详细说明.

python containers operators

28
推荐指数
2
解决办法
786
查看次数

Python:list.extend和list .__ iadd__之间的区别

我认为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
Run Code Online (Sandbox Code Playgroud)

我在python2.7.3和python3.4.0中尝试过这个.

python

3
推荐指数
1
解决办法
497
查看次数

标签 统计

python ×3

containers ×1

global-variables ×1

operators ×1

scope ×1