定义异常时不必要的传递

sam*_*249 15 python pylint python-3.x

我经常会编写一个通用异常,如下所示:

class MyException(Exception):
    "My custom exception."
    pass
Run Code Online (Sandbox Code Playgroud)

这样我就可以检查该异常是否是我想要的异常(例如块)try/except。然而pylint对此的抱怨如下:

不必要的通行证:不必要的通行证声明

这项投诉背后的理由是什么?是否有更优选的方法来执行上述操作?即使 python 文档也建议对用户定义的异常使用类似的东西:

class Error(Exception):
    """Base class for exceptions in this module."""
    pass
Run Code Online (Sandbox Code Playgroud)

lut*_*her 17

理由是字符串文字是类主体中有效的 Python 语句,因此pass不需要显示缩进。

这是一个风格问题,因此对于如何解决这个问题没有明确的答案。如果您觉得pass有用,我建议在 pylint 中禁用该警告。

  • 就我个人而言,由于文档字符串是具有有用效果的实际语句,因此我认为“pass”是多余的并将其省略。如果正文中的唯一行是注释,我将包含“pass”,因为注释不应该对代码产生任何影响。 (5认同)