Calling a derived class's constructor from a parent method

Mark Lawrence breamoreboy at yahoo.co.uk
Wed Jan 14 18:05:27 CET 2015


On 14/01/2015 16:45, jason wrote:
> If I have a class hierarchy like so:
>
>
> class A(object):
>        def __init__(self, s):
>              self.s = s
>        def foo(self, s):
>              return A(s)
>
> class B(A):
>        def __init__(self, s):
>              A.__init__(self, s)
>
> If I make a B:
>
> b = B(0)
>
> I'd like b.foo(1) to return an instance of B. Is there a way to do that besides implementing a construct(self, s) for each part of the hierarchy? I.e. is there a way for the base class to look at self and find out what type to create?
>
> I'm using Python 2.7.5, but I'm curious what the 3.x answer is too.
>

I'm confused, can you please explain what you're trying to achieve 
rather than how you're trying to achieve it and I'm sure that others 
will give better answers than I can :)

-- 
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence




More information about the Python-list mailing list