我正在创建一个Python 3.4模块(可能在PyPi上共享)并且我想澄清处理从我的包中导入的函数返回的结果和错误的正确和预期方式。
我正在阅读Effective Python,但我仍感到困惑。
有很多可能性,我只想正确处理导入函数的Python 3结果。
result
和error
处理导入的函数:
result
,但在出错时抛出exception
?result, error
?如果首选的选择是元组,那么应该:
result
可以是任何内容(这是正确的吗?),但是error
应该是None
还是应该是False
?result
应该是None
还是应该False
,然后error
应该返回内部Exception
或什么?感谢您的反馈
答案 0 :(得分:0)
您应该在出错时抛出异常。这样可以实现许多预先构建,例如正确的对象破坏,例如with
关键字。
如果您提出异常,则不关心result
,因为您的功能将无法以正常方式返回。因此,函数调用左侧的指令也不会执行try
块的其余部分。