所以最近我一直在问一些关于 Python 中更专业和 pythonic 风格的问题,尽管我的问题得到了很好的答案,但我觉得我需要问一个更广泛的问题。
一般来说,当编写处理更多副作用(文件写入、字典定义等)而不是返回值的实用函数(用于库等)时,返回状态码以告知调用方非常有用它通过或失败的功能。
在 Python 中,似乎有三种方法来标记它:
使用 -1 或 0 的返回值(类似 C)并使用如下语句
if my_function(args) < 0:
fail condition
pass condition
或者使用 True/False 的返回值
if not my_function(args):
fail condition
pass condition
或使用异常(出现未知错误时退出)的“返回”或“无返回”
try:
my_function(args)
except ExpectedOrKnownExceptionOrError:
fail condition
pass condition
哪一个最好?最正确?首选?我理解所有的工作,并且没有一个比另一个有太多的技术优势(除了异常处理的开销之外)。
请您参考如下方法:
不要返回一些东西来指示错误。抛出异常。绝对不要捕获异常并将其转换为返回码。
