Inheritance question

Tzury Bar Yochay Afro.Systems at gmail.com
Tue Mar 25 15:31:06 CET 2008


On Mar 25, 4:03 pm, Anthony <anthonysmit... at gmail.com> wrote:
> On Mar 25, 11:44 am, Tzury Bar Yochay <Afro.Syst... at gmail.com> wrote:
>
> > While my intention is to get 1.2 I get 2.2
> > I would like to know what would be the right way to yield the expected
> > results
>
> Is this what you want?
>
> class Foo(object):
>     def __init__(self):
>         self.id = 1
>     def getid(self):
>         return self.id
>
> class FooSon(Foo):
>     def __init__(self):
>         Foo.__init__(self)
>         self.id = 2
>     def getid(self):
>         a = Foo().getid()
>         b = self.id
>         return '%d.%d' % (a,b)
>
> >>> FooSon().getid()
>
> '1.2'
>
> Best wishes,
> Anthony

I wish it was that simple but 'a = Foo().getid()' is actually creating
a new instance of Foo whereas I want the data of the Foo instanced by
__init__ of FooSon().

what I am actually trying to do is to build a set of classes which
handle different type of binary messages coming from the network.

a base message which handles its basic data parts (src, dst, etc.) and
extending it per message type. thus I looked for a way to get the
child calling super for parsing the super's prats and then having the
child parsing its additional details.




More information about the Python-list mailing list