繁体   English   中英

python3中的递归和闭包

[英]recursion and closures in python3

env 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

我想返回 x 的值,但不是无,即使打印的值

返回b() 第一次调用 b 时,它到达b()但不返回任何内容,因此您的最终返回值为 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM