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条件是False
,我们不需要这个else
来返回2。但我很好奇,因为如果我们使用这个test2作为非嵌套函数,它会毫无问题地返回2。
test1
调用test2
,但本身不返回任何内容,因此它隐式返回None
。你似乎是想把电话还给test2
:
def test1():
def test2():
if False:
return 1
else:
return 2
return test2() # Here!