<p>我上了以下课程:</p>
<pre><code>class ConstraintFailureSet(dict, Exception) :
"""
Container for constraint failures. It act as a constraint failure itself
but can contain other constraint failures that can be accessed with a dict syntax.
"""
def __init__(self, **failures) :
dict.__init__(self, failures)
Exception.__init__(self)
print isinstance(ConstraintFailureSet(), Exception)
True
raise ConstraintFailureSet()
TypeError: exceptions must be classes, instances, or strings (deprecated), not ConstraintFailureSet
</code></pre>
<p>见鬼什么?在</p>
<p>最糟糕的是我不能尝试super(),因为异常是基于旧类的。。。在</p>
<p>编辑:而且,是的,我试图切换继承/初始化的顺序。在</p>
<p>编辑2:我在Ubuntu8.10上使用cpython2.4。你新知道的是这种信息是有用的;-)。不管怎样,这个小谜语让我的三个同事闭嘴了。你会是我今天最好的朋友。。。在</p>