【问题标题】:Python 3: Shared packages: Returning results and errors from imported functionsPython 3:共享包:从导入的函数返回结果和错误
【发布时间】:2016-02-11 16:12:52
【问题描述】:

我正在创建一个 Python 3.4 模块(可能在 PyPi 上共享),我想澄清处理从我的包中导入的函数返回的结果和错误的正确和预期方式。

我正在阅读Effective Python,但我仍然感到困惑。

有很多可能性,我只想正确处理导入函数的 Python 3 结果。

应该resulterror 处理导入的函数:

  1. 返回result,然后在出错时抛出exception
  2. 返回一个元组result, error?

如果首选是元组,那么应该:

  1. 成功后,result 可以是任何东西(这是正确的吗?),但随后 error 应该是 None 还是应该是 False
  2. 如果失败,那么result 应该是None 还是应该是False,然后error 应该返回内部捕获的Exception 还是什么?

感谢您的反馈

【问题讨论】:

    标签: python-3.x error-handling


    【解决方案1】:

    您应该在出错时抛出异常。这可以实现许多高级构造,例如正确的对象销毁,例如使用 with 关键字。

    如果您提出异常,您不会关心result,因为您的函数不会“以正常方式”返回。因此,函数调用左侧的指令将不会像 try 块的其余部分一样被执行。

    【讨论】:

    • 感谢您的回复。关于您回复的第一行,我没有遵循“错误时抛出异常”和with 关键字的组合?我理解with 用于例如open()
    • 在您的示例中,它将设法在出现异常时自动关闭文件。这种结构确保您不会忘记对错误(可能是关闭文件、释放互斥锁等)管理“重要的事情”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    相关资源
    最近更新 更多