考虑这段代码:
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 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
函数总是返回一些东西(至少
None
,当在执行期间没有到达返回语句并且到达函数的末尾时)。另一种情况是它们被异常打断。在这种情况下,异常处理将“控制堆栈”,您将返回到适当的
except
或得到一些讨厌的错误 :)关于你的问题,我必须说有两种可能性:要么你有东西要归还,要么你没有。
None
将告诉调用者情况就是这样(没有更好的方法告诉调用者“然后None
返回什么都没有”,所以检查它,你会没事的)