在 JVM 语言中,有一种称为 Optional 的数据类型,表示值可以为 Null/None。通过使用函数的数据类型作为选项(例如 Option(Int))。函数的调用语句可以采取行动。
如何在 Python 中实现类似的方法。我想创建一个函数,函数的返回值应该告诉我 1. 函数成功,所以我有一个返回值。 2. 功能不成功,因此没有任何返回。
原文由 apeter 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 JVM 语言中,有一种称为 Optional 的数据类型,表示值可以为 Null/None。通过使用函数的数据类型作为选项(例如 Option(Int))。函数的调用语句可以采取行动。
如何在 Python 中实现类似的方法。我想创建一个函数,函数的返回值应该告诉我 1. 函数成功,所以我有一个返回值。 2. 功能不成功,因此没有任何返回。
原文由 apeter 发布,翻译遵循 CC BY-SA 4.0 许可协议
我也想解决这个问题并制作了一个名为 optional.py 的库来解决这个问题。它可以使用
pip install optional.py
安装。它经过全面测试,支持 python2 和 python3。希望得到一些反馈、建议和贡献。为了解决另一个答案的问题,并阻止任何仇恨者,是的,引发异常更符合 python 的习惯,但是它会导致控制流异常和实际异常原因异常之间的歧义。
关于防止掩盖应用程序核心逻辑的防御性编程以及对话双方的聪明人,存在大量讨论。我个人偏好使用可选值,因此我提供了支持该偏好的库。有例外地这样做(或返回
None
)是可以接受的选择,只是不是我的偏好。