python - 为什么函数在嵌套函数中的 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。
解决方案
test1
调用test2
,但本身不返回任何内容,因此它隐式返回None
. 您似乎打算将呼叫返回到test2
:
def test1():
def test2():
if False:
return 1
else:
return 2
return test2() # Here!
推荐阅读
- julia - 新方法定义不明确
- javascript - 为什么滚动条是空的?
- spring - 无法使用 UndertowServletWebServerFactory 来限制 MAX_ENTITY_SIZE
- java - 如何合并 2 个对象列表但是当它有 2 个对象重复时,它将两者结合并更改数量?
- python - 如何编写 python 脚本来读取我的 Outlook 的所有主题标题......它是否在日期范围内?
- php - 动态 orWhere 子句
- .net - 显示网站图像测试与生产
- vue.js - 我可以在不使用 ul 或 ol 的情况下使用 Vue v-for
- ruby - 如何访问与条件匹配的数组中元素的索引
- react-native - 如何在 DrawerNavigator 中确定活动路线以着色活动菜单项并关闭抽屉