首页 > 解决方案 > 为什么函数在嵌套函数中的 else 语句之后不返回?

问题描述

def test1():
    def test2():
        if False:
            return 1
        else: return 2
    test2()

我不知道为什么,但是这个函数没有返回它应该返回的 2。但是当我们这样做时:

def test1():
    def test2():
        if False:
            return 1
        else: print(2)
    test2()

它在屏幕上打印 2。为什么会这样?

PS:我知道如果 if 条件是 ,我们不需要else返回 2 False。但我很好奇,因为如果我们将此 test2 用作不是嵌套函数,它会毫无问题地返回 2。

标签: pythonif-statementreturnconditional-statementsnested-function

解决方案


test1调用test2,但本身不返回任何内容,因此它隐式返回None. 您似乎打算将呼叫返回到test2

def test1():
    def test2():
        if False:
            return 1
        else: 
            return 2
    return test2() # Here!

推荐阅读