【问题标题】:Need help understanding this python error return (Google search doesn't help)需要帮助理解这个 python 错误返回(谷歌搜索没有帮助)
【发布时间】:2011-05-20 17:50:18
【问题描述】:

在 python 代码中。当您在 Error Flag 前面看到否定的时候,这是什么意思?

返回 -errno.EACCES

【问题讨论】:

  • 其他表达式前面的减号(以1为例)是什么意思?
  • 即使是 Google 搜索也无法解释您实际在做什么。

标签: python


【解决方案1】:

这是一个 C 风格的错误返回。一种流行的做法是在成功时返回有意义的非负函数结果或在失败时返回负错误代码。

在这种情况下,错误 EACCES 表示permision was denied

(另见this question

【讨论】:

  • 从未听说过这种做法(我不是说它不存在)。通常的做法是返回不同于 0 的值。glibc 函数在出错时返回正值。
  • @Ugo,这个问题 (stackoverflow.com/questions/1848729/…) 提供了一些很好的信息,说明您为什么选择负返回值。我可能应该将这类信息纳入我的回答中。
【解决方案2】:

意思是否定。 errno.EACCES(权限被拒绝)是数字 13(肯定)。该代码的作者有一个约定,他希望错误号为负数,以便稍后由他们的代码解释。

想必,他采用这种约定是有原因的。例如,该函数在程序中稍后使用的非错误上返回非负整数。

【讨论】:

    【解决方案3】:

    作者可能将错误代码限制为负值,以便能够返回各种(正)成功值。

    约定似乎被某些人使用:
    http://www.google.com/codesearch?hl=en&lr=&q=%22return+-errno%22+lang%3Apython&sbtn=Search

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 2012-07-11
      • 2020-08-06
      • 2013-08-18
      • 2019-08-11
      • 1970-01-01
      • 2014-08-29
      相关资源
      最近更新 更多