I'm wondering if there's a way in python to cause __init__ to return a class 
other than the one initially specified.  My use case is that I'd like to have a 
superclass that's capable of generating an instance of a random subclass.  

I've tried both returning the subclass (as I would when overloading an 
operator) but I get the complaint that __init__ wants to return None instead of 
a type.

The other thing I tried was overwriting 'self' while inside __init__ but that 
doesn't seem to work either.

class Parent(object):
    def __init__(self, foo):
        if foo == True:
            self = Child(foo)

class Child(Parent):
    def __init__(self, foo):
        pass

Is there a way to do this?  
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to