0

我正在使用 Python2.7,但仍然对 python 中的范围感到困惑。我无法解释为什么会发生这种情况。有人可以帮助我。提前致谢。

情况1:

x = 1
def func():
    print x

func()

=> 结果:

1

案例2:

x = 1
def func():
    print x
    x = 9
func()

=> 结果:

UnboundLocalError: local variable 'x' referenced before assignment

当我x = 9在案例 2 中添加该行时,发生了错误。

4

1 回答 1

1

如果您在方法中重新分配外部变量,您应该使用global

x = 1
def func():
    global x
    print x
    x = 9
func()

对于可变变量(如 list 或 dict ),当您只需要修改内部状态( list.append、list.pop )时 - 您不需要global关键字。

于 2013-06-19T11:31:49.430 回答