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