Я получил следующий класс:
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
Что за черт?
И хуже всего то, что я не могу попробовать super(), поскольку Exception являются старыми классами...
EDIT: И, да, я попытался переключить порядок наследования /init.
EDIT2: Я использую CPython 2.4 на Ubuntu8.10. Вы знаете, что это информация, полезная;-). Во всяком случае, эта маленькая загадка закрыла рот 3 моих коллег. Ты будешь моим лучшим другом дня...