【发布时间】:2011-02-23 11:11:48
【问题描述】:
我正在尝试在 Python 2.6 中定义我自己的(非常简单的)异常类,但无论如何我都会收到一些警告。
首先,最简单的方法:
class MyException(Exception):
pass
这可行,但会在运行时打印出警告:DeprecationWarning: BaseException.message has been deprecated as of Python 2.6 OK,所以不是这样。然后我尝试了:
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
我怎么能在没有任何警告的情况下做这么简单的事情?
【问题讨论】:
-
*lint总是在警告方面犯错,因此会产生您并不真正关心的警告,并且可能会提示粗心的人做一些事情,例如添加未使用的方法来尝试关闭它。让任何 lint 不抱怨不是一个值得的目标,了解它的所有抱怨才是。