python - 使用嵌套函数更改变量

时间:2013-07-23 03:56:23

标签: python python-3.x

请原谅我是python的新手。我觉得这应该是可能的,但我已经在这个网站(以及其他)中查看过。我似乎无法使用嵌套函数直接更改函数中的变量。我试过了

global 

无济于事。我可以重新分配它以解决这个问题,但它会导致问题 例如:

def Grrr():
    a = 10
    def nested(c):
        b = 5
        c -= b
    nested(a)
    return a

我正试图远离

def Grrr():
    a = 10
    def nested(c):
        b = 5
        c -= b
    a = nested(a)
    return a

如果这确实是最好的方式,那我就会用它。我只是觉得这里的人比我好得多。

1 个答案:

答案 0 :(得分:4)

您可以避免使用参数,而是使用nonlocal

def Grrr():
    a = 10
    def nested():
        nonlocal a
        b = 5
        a -= b
    nested()
    return a

如果你想传递一个变量来改变,那么就无法完成; Python没有C ++意义上的引用。

†​​没有一些可怕的hackery

相关问题