don't understand MRO

Uwe Mayer merkosh at hadiko.de
Thu Jun 23 17:53:50 CEST 2005


Hi,

I have a subclassed PyQt class: 

class Node(object):
        def move(self, x,y): pass

class CRhomb(QCanvasPolygon, Node): pass

$ python
v2.4.1
>>> CRhomb.mro()
[<class '__main__.CRhomb'>, <class 'qtcanvas.QCanvasPolygon'>, <class
'qtcanvas.QCanvasPolygonalItem'>, <class 'qtcanvas.QCanvasItem'>, <class
'qt.Qt'>, <type 'sip.wrapper'>, <class '__main__.Node'>, <type 'object'>]

>>> a = CRhomb()
>>> a.move(1,2)

This executes also Node.move(a, 1,2)
Why?

Because even QCanvasItem.move delegates the call to the derived object? But
qt.Qt does not have a move() method... how does it get passed on to Node?

Thanks in advance,
Ciao
Uwe     



More information about the Python-list mailing list