我试图在 Python 2.6 中定义我自己的(非常简单的)异常类,但无论我怎么做,我都会收到一些警告。
首先,最简单的方法:
class MyException(Exception):
pass
这有效,但在运行时打印出警告:DeprecationWarning:自 Python 2.6 起,BaseException.message 已被弃用 https://stackoverflow.com/questions/1272138/baseexception-message-deprecated-in-python-2-6好吧,所以这不是办法。然后我尝试:
class MyException(Exception):
def __init__(self, message):
self.message = message
这也有效,但 PyLint 报告警告:W0231: MyException.__init__: __init__ method from base class 'Exception' is not called
。所以我尝试称呼它:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)