On 6 April 2012 15:54, John Fabiani <jo...@jfcomputer.com> wrote:
> Hi,
>
> I want to create a class that inherits two other classes.
>
> class NewClass( A,B)
>
> But both "A" and "B" contain a method with the same name ("onKeyDown").
>
> If my "NewClass" does not contain something to override the methods which one
> would be called if
>
> myinstance = NewClass()
>
> myinstance.onKeyDown()


Hi John,

Easy enough to sort out with a little experiment:

>>> class A(object):
        def doit(self):
                print "A"

                
>>> class B(object):
        def doit(self):
                print "B"

                
>>> class C(A,B):
        def __init__(self):
                self.doit()

                
>>> c=C()
A

> Second to insure the right one is called is it possible to do the following
>
> NewClass(object):
>
>  def onKeyDown(self, event):
>      b.onKeyDown(event)
>

Perhaps this helps, some:

>>> class D(A,B):
        def __init__(self):
                self.doit()

        def doit(self):
                print "D"
                super(D, self).doit()

                
>>> d=D()
D
A
>>> class E(A,B):
        def __init__(self):
                B.doit(self)

                
>>> e=E()
B
>>>


Best,

Brian vdB
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to