A superclass using a child classes' methods
Jean-Michel Pichavant
jeanmichel at sequans.com
Wed Jun 24 12:23:28 EDT 2009
Kurt Schwehr wrote:
> I'm trying to build an OO system for encoding and decoding
> datapackets. I'd like the parent class to have an encode function
> that uses each of the child classes' packing methods. It appears that
> this works for attributes of children accessed by the parent, but not
> for methods.
hell no, this works for methods as well.
> Is that right? For attributes I found this example,
> where the alphabet attribute is set in the child, but used in the
> parent.
>
> http://www.pasteur.fr/formation/infobio/python/ch19s04.html
>
> Should I just set an attribute in the child class and then call the
> super's functionality making is pull the data from the attribute?
>
> Thanks,
> -kurt
>
class Parent:
def foo(self):
raise NotImplementedError() # virtual method, it has to be
overriden by childs
def bar(self):
self.foo()
class Son(Parent):
def foo(self):
print "I'm your son"
class Daughter(Parent):
def foo(self):
print "I'm your daughter"
Son().bar()
"I'm your son"
Declaring the foo method at the Parent level is not required. But it's a
good practice: explicit > implicit and it helps to write proper
documentation.
Jean-Michel
More information about the Python-list
mailing list