0
这个问题是在参考:定义自定义异常在Python
The "correct" way to define an exception in Python without PyLint complaining
在干净的代码来看,貌似理想的方式来定义一个例外是这样的:
class MyException(Exception):
pass
但是,如参考问题所述,这会导致运行时警告:
DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
接受的答案似乎是定义消息的方法:
class MyException(Exception):
def __init__(self, message):
super(MyException, self).__init__(message)
self.message = message
除了是4个凌乱的线条和代码的可读性线,这个最大的问题是,你必须冗余输入新的名称例外(MyException
)两次。
我不经常在Python中使用类,所以请原谅我,如果我在这里的基础,但可能更好的方法来处理这是定义自己的基本例外与非贬值.message
方法自Python似乎有使用BaseException
的问题? ::
# Do this only once:
class MyBaseException(Exception):
def __init__(self, message):
super(MyBaseException, self).__init__(message)
self.message = message
# Whenever you want to define a new exception:
class NewException(MyBaseException):
pass
是什么问题?我只是看到一个声明。你问是不是? – lukecampbell
我会用简单的2班轮解决方案... –
你的问题不是关于如何定义它(如果你不覆盖默认行为,你不这样做,那么不要重写'__init__'),但显然与你如何使用它,因为当你访问属性时会引发警告。所以修复它。 – poke