擅长:python、mysql、java
<p>这是一个有效的pylint警告:如果不使用超类<code>__init__</code>,则可能会错过父类中的实现更改。事实上,您已经-因为<code>BaseException.message</code>在Python2.6中已经被弃用了。在</p>
<p>下面的实现将避免警告W0231,并避免python关于<code>message</code>属性的不推荐警告。在</p>
<pre><code>class InvalidTeamError(Exception):
def __init__(self, message='This user belongs to a different team'):
super(InvalidTeamError, self).__init__(message)
</code></pre>
<p>这是一种更好的方法,因为<a href="https://hg.python.org/cpython/file/6f6e56bb10aa/Objects/exceptions.c#l100">implementation for ^{<cd4>}</a>只考虑'args'元组,它根本不看消息。使用旧的实现,<code>print InvalidTeamError()</code>只会打印一个空字符串,这可能不是您想要的!在</p>