gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 22:21:28 26 4
gpt4 key购买 nike

我正在尝试在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com