python - "correct"在 Python 中定义异常而没有 PyLint 提示的方法

标签 python exception

我正在尝试在 Python 2.6 中定义我自己的(非常简单的)异常类,但无论如何我都会收到一些警告。

首先,最简单的方法:

class MyException(Exception):
    pass

这可行,但会在运行时打印出警告:DeprecationWarning: BaseException.message has been deprecated as of Python 2.6好吧,那不是办法。然后我尝试了:

class MyException(Exception):
    def __init__(self, message):
        self.message = message

这也有效,但 PyLint 报告警告:W0231: MyException.__init__: __init__ 来自基类 'Exception' 的方法未被调用。所以我尝试调用它:

class MyException(Exception):
    def __init__(self, message):
        super(Exception, self).__init__(message)
        self.message = message

这也有效!但是现在 PyLint 报错:E1003: MyException.__init__: Bad first argument 'Exception' given to super class

我怎么能在没有任何警告的情况下做这么简单的事情?

最佳答案

当你调用super时,你需要子类/派生类作为第一个参数,而不是主类/基类。

来自 Python 在线文档:

class C(B):
    def method(self, arg):
        super(C, self).method(arg)

所以你的异常定义如下:

class MyException(Exception):
    def __init__(self, message):
        super(MyException, self).__init__(message)
        self.message = message

关于python - "correct"在 Python 中定义异常而没有 PyLint 提示的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2901000/

相关文章:

python - 一个字符串,对于其中的每个字符,都存在按字母顺序小于它之前的所有字符

java - Apache POI 无法将填充单元格格式化为数字

python - 如何从不同的文件中获取数据并在 python 中组合成一个数组?

python - 具有 Lat 和 Lon 的 Pandas Dataframe 行之间的距离矩阵

c++ - 不抛出 std::out_of_range 异常

java - TDD,不可能有异常(exception)

google-app-engine - App Engine 中超时异常的名称是什么?

apache - HTACCESS - 大写到小写,异常(exception)

python - matplotlib.pyplot 中刻度标签的不同旋转

python - Kaggle API *在* python 中的文档?