python3 中的递归和闭包
recursion and closures in python3
环境 python 3.8.2
我无法获得值 var return
def a(x):
def b():
nonlocal x
if x>2:
print(x)
return x
x = x + 1
b()
return b
print(a(1)())
结果是
4
None
我想 return x 的值,但不是 None,即使打印的值
Returnb()
。第一次调用 b 时,它到达 b()
但 return 什么都没有,所以你的最终 return 值为 None.
def a(x):
def b():
nonlocal x
if x>2:
print(x)
return x
x = x + 1
return b()
return b
print(a(1)())
> 3
> 3
环境 python 3.8.2
我无法获得值 var return
def a(x):
def b():
nonlocal x
if x>2:
print(x)
return x
x = x + 1
b()
return b
print(a(1)())
结果是
4
None
我想 return x 的值,但不是 None,即使打印的值
Returnb()
。第一次调用 b 时,它到达 b()
但 return 什么都没有,所以你的最终 return 值为 None.
def a(x):
def b():
nonlocal x
if x>2:
print(x)
return x
x = x + 1
return b()
return b
print(a(1)())
> 3
> 3