Python 为什么函数不';嵌套函数中的else语句之后是否返回?
我不知道为什么,但是这个函数没有返回它应该返回的2。但当我们这样做时:Python 为什么函数不';嵌套函数中的else语句之后是否返回?,python,if-statement,return,conditional-statements,nested-function,Python,If Statement,Return,Conditional Statements,Nested Function,我不知道为什么,但是这个函数没有返回它应该返回的2。但当我们这样做时: def test1(): def test2(): if False: return 1 else: return 2 test2() 它在屏幕上打印2。 为什么会这样 PS:我知道如果if条件为False,我们不需要这个else返回2。但我很好奇,因为如果我们使用这个test2作为非嵌套函数,它将毫无问题地返回2。test1调用test2,但它本身不
def test1():
def test2():
if False:
return 1
else: return 2
test2()
它在屏幕上打印2。
为什么会这样
PS:我知道如果if条件为
False
,我们不需要这个else
返回2。但我很好奇,因为如果我们使用这个test2作为非嵌套函数,它将毫无问题地返回2。test1
调用test2
,但它本身不返回任何内容,因此隐式返回None
。您似乎打算将调用返回到test2
:
def test1():
def test2():
如果为假:
返回1
其他:
返回2
返回test2()#这里!
将test2()
更改为returntest2()
函数调用接收返回函数到本地作用域的返回值。如果你想让它返回当前范围之外,你也必须返回它。你需要returntest2()
,因为test1
*不返回任何内容,所以默认情况下它将返回None
def test1():
def test2():
if False:
return 1
else: print(2)
test2()