Tzury Bar Yochay <[EMAIL PROTECTED]> writes: > given two classes: > > 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)
Try this: 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(self) b = self.__id return '%d.%d' % (a,b) >>> FooSon().getid() '1.2' > 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 Either use the above "private" fields, or emulate them yourself by renaming self.id to self.foo_id or self.foo_son_id, and exposing those in the class. Or you can have a class-specific dict in each instance, and so on. -- http://mail.python.org/mailman/listinfo/python-list