2

对不起,我是 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

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

4

1 回答 1

4

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

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

但是,如果你想传入一个变量来改变,那是做不到的†</sup>; Python 没有 C++ 意义上的引用。

† 没有一些可怕的骇客

于 2013-07-23T04:02:32.427 回答