所以最近我一直在问Python关于更多专业和pythonic风格的问题,尽管我的问题给出了很好的答案,但我觉得我需要提出一个更广泛的问题。通常,在编写处理副作用(文件写入,字典定义等)而不是返回值的效用函数(对于库等)时,返回状态代码以告诉调用它通过或失败的函数。Python返回代码
在Python,似乎有三种方式来标记此:
使用的-1或0(C等)的返回值,并使用语句如
if my_function(args) < 0:
fail condition
pass condition
,或者使用一回真值/假
if not my_function(args):
fail condition
pass condition
,或者使用“回报或‘返回None’使用异常(未知错误退出)
try:
my_function(args)
except ExpectedOrKnownExceptionOrError:
fail condition
pass condition
哪个最好?最正确的?首选?我理解所有的工作,并且没有太多的技术优势(除了可能的异常处理的开销)。
+1,这样做会很... C++。 – 2rs2ts
是的,这是EAFP的方法,在Python中很常见。类似C的方法在这里可能是最糟糕的,但最终,这一切都取决于图书馆的确切目标,以及在常见用法方面更一致。 – Tadeck
好的,这是我的问题。如果我的论点不符合功能要求,我应该只是抛出一个基本的异常?像 如果数据<0: 引发异常('bad input') –