请原谅我是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
如果这确实是最好的方式,那我就会用它。我只是觉得这里的人比我好得多。
答案 0 :(得分:4)
您可以避免使用参数,而是使用nonlocal
:
def Grrr():
a = 10
def nested():
nonlocal a
b = 5
a -= b
nested()
return a
如果你想传递一个变量来改变,那么就无法完成†; Python没有C ++意义上的引用。
†没有一些可怕的hackery