考虑这段代码:
def foo(foo_input):
if 0 <= foo_input <= 100:
return f_input
这将返回 None
在 foo_input > 100
的情况下。但它真的可以 不 返回任何东西吗?或者一个函数是否总是必须返回一些东西?
另请参阅: 返回、返回 None 和根本不返回?
原文由 beoliver 发布,翻译遵循 CC BY-SA 4.0 许可协议
考虑这段代码:
def foo(foo_input):
if 0 <= foo_input <= 100:
return f_input
这将返回 None
在 foo_input > 100
的情况下。但它真的可以 不 返回任何东西吗?或者一个函数是否总是必须返回一些东西?
另请参阅: 返回、返回 None 和根本不返回?
原文由 beoliver 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答4.2k 阅读✓ 已解决
2 回答808 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
3 回答787 阅读✓ 已解决
4 回答2.5k 阅读
3 回答818 阅读✓ 已解决
函数总是返回一些东西(至少
None
,当在执行期间没有到达返回语句并且到达函数的末尾时)。另一种情况是它们被异常打断。在这种情况下,异常处理将“控制堆栈”,您将返回到适当的
except
或得到一些讨厌的错误 :)关于你的问题,我必须说有两种可能性:要么你有东西要归还,要么你没有。
None
将告诉调用者情况就是这样(没有更好的方法告诉调用者“然后None
返回什么都没有”,所以检查它,你会没事的)