[Python-bugs-list] [ python-Bugs-699934 ] Obscure error message
SourceForge.net
noreply@sourceforge.net
Tue, 11 Mar 2003 18:50:57 -0800
Bugs item #699934, was opened at 2003-03-08 05:29
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=699934&group_id=5470
Category: Python Interpreter Core
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Bjorn Pettersen (bpettersen)
Assigned to: Raymond Hettinger (rhettinger)
Summary: Obscure error message
Initial Comment:
>>> class A(object):
... m = 1
...
>>> class B(A): pass
...
>>> class C(A): pass
...
>>> class D(A,B): pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: MRO conflict among bases A, B
I happen to know what MRO stands for, but probably
most people that made the typo I did in the diamond
inheritance graph will have no idea what they did wrong...
How about "One of the declared superclasses A, B
inherits from the other, the method resolution order
(MRO) would therefore be undefined. Cannot create
class."
-- bjorn
----------------------------------------------------------------------
>Comment By: Bjorn Pettersen (bpettersen)
Date: 2003-03-11 19:50
Message:
Logged In: YES
user_id=556638
Even better. If I were to suggest anything, it would be to
add "(lookup)" after "resolution" since that seems to be the
more frequently used terminology -- not a big issue though.
----------------------------------------------------------------------
Comment By: Raymond Hettinger (rhettinger)
Date: 2003-03-11 18:29
Message:
Logged In: YES
user_id=80475
I don't think the first part of the sentence is accurate.
MRO conflicts can arise for less straight-forward reasons.
How about:
"Cannot create class. Superclasses A, B have conflicting
inheritance trees which leave the method resolution order
(MRO) undefined."
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=699934&group_id=5470