我使用了两种技术来解决这个问题,但无法解决。我想在这里将"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()