是否可以不从 python 中的函数返回任何内容?

新手上路,请多包涵

考虑这段代码:

 def foo(foo_input):
    if 0 <= foo_input <= 100:
        return f_input

这将返回 Nonefoo_input > 100 的情况下。但它真的可以 返回任何东西吗?或者一个函数是否总是必须返回一些东西?


另请参阅: 返回、返回 None 和根本不返回?

原文由 beoliver 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 645
2 个回答

函数总是返回一些东西(至少 None ,当在执行期间没有到达返回语句并且到达函数的末尾时)。

另一种情况是它们被异常打断。在这种情况下,异常处理将“控制堆栈”,您将返回到适当的 except 或得到一些讨厌的错误 :)

关于你的问题,我必须说有两种可能性:要么你有东西要归还,要么你没有。

  • 如果你有东西要归还,那就去做,如果没有,那就不要。
  • 如果您依赖返回的东西具有某种类型,但您不能返回任何有意义的这种类型,那么 None 将告诉调用者情况就是这样(没有更好的方法告诉调用者“然后 None 返回什么都没有”,所以检查它,你会没事的)

原文由 Nobody moving away from SE 发布,翻译遵循 CC BY-SA 3.0 许可协议

否。如果在函数结束之前未达到 return 语句,则返回隐式 None

原文由 Ignacio Vazquez-Abrams 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题