Ravi wrote:
Why the following code gives inconsistent method resolution order
error:
[...]
Your problem can be reduced to:
>>> class A(object):
... pass
...
>>> A.__mro__
(<class '__main__.A'>, <type 'object'>)
>>> class B(object, A):
... pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Error when calling the metaclass bases
Cannot create a consistent method resolution
order (MRO) for bases object, A
>>> class C(A, object):
... pass
...
>>> C.__mro__
(<class '__main__.C'>, <class '__main__.A'>, <type 'object'>)
The class B would require a MRO of (<class '__main__.B'>, <type
'object'>, <class '__main__.A'>, <type 'object'>) which isn't allowed in
Python.
Christian
--
http://mail.python.org/mailman/listinfo/python-list