簡體   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