由于在python中,我们不能通过引用来传递如何更改python中其他范围中存在的变量的值



我使用了两种技术来解决这个问题,但无法解决。我想在这里将"a"的值从5修改为6,但它没有修改。

def f2():
a=5
def insidefun(c):
if c==0:
return
if c==1:
global a
a=6
return insidefun(c-1)
insidefun(3)
print(a)# result is 5 but I want to modify it to 6.global keyword is no working here
f2()

我尝试的另一种方法是在函数中传递值。

def f2():
a=5
def insidefun(c,a):
if c==0:
return
if c==1:
a=6
return insidefun(c-1,a)
insidefun(3,a)
print(a) #still it is printing 5.
f2()

有什么方法可以改变函数中"a"的值吗。

使用'nonlocala'我得到了所需的输出。

def f2():
a=5
def insidefun(c):
if c==0:
return
if c==1:
nonlocal a
a=6
return insidefun(c-1)
insidefun(3)
print(a)
f2()

相关内容

  • 没有找到相关文章

最新更新