[Tutor] Calling method in parent class

Alan Gauld alan.gauld at btinternet.com
Tue May 12 18:27:13 CEST 2009


"The Green Tea Leaf" <thegreentealeaf at gmail.com> wrote 

class Child(Parent):
    def somemethod( self, bla ):
        Parent.somemethod(self,bla)

or like this

class Child(Parent):
    def somemethod( self, bla ):
        super(Child,self).somemethod(bla)

> The first version seem to have the obvious disadvantage that I need to
> know the name of the parent class when I write the call, 

But since you know the name of the parent when you write the 
class thats seldom an issue.

> that the second version was the "proper" way of doing it. But when
> doing some research on the web it seem like the second version also
> have some problems.

This has been much improved in Python v3 but the issues with super 
in v2 are such that I usually recommend the explicit call (option 1)

> My question is simple: what is the "best" way of doing this and why?

The one that works for you. In my case its option 1 because 
its explicit and therefore clear what exactly I'm calling.

> Or should I mix both these approaches?

No, do not mix them, that way leads to madness IMHO! :-)

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/



More information about the Tutor mailing list