python – 如何声明变量来自封闭范围?

如何编写如下代码的代码?我想在封闭的函数范围中引用一个变量for assignment.

def outer():
    x = 0

    def inner():
        x += 1

    inner()

写入的代码给出了UnboundLocalError.我理解为什么会出现这个错误,我只是不知道我是如何指出x来自包装范围的.

最佳答案 你可以做:

def outer():
    x = [0]

    def inner():
        x[0] += 1

    inner()

你不能重新绑定非本地,但你可以改变它.

点赞