Dziedziczenie z instancji w Pythonie

W Pythonie chciałbym skonstruować instancję klasy Child bezpośrednio z instancji klasy Parent. Na przykład:

A = Parent(x, y, z)
B = Child(A)

To jest hack, który według mnie może zadziałać:

class Parent(object):

    def __init__(self, x, y, z):
        print "INITILIZING PARENT"
        self.x = x
        self.y = y
        self.z = z

class Child(Parent):

    def __new__(cls, *args, **kwds):
        print "NEW'ING CHILD"
        if len(args) == 1 and str(type(args[0])) == "<class '__main__.Parent'>":
            new_args = []
            new_args.extend([args[0].x, args[0].y, args[0].z])
            print "HIJACKING"
            return Child(*new_args)
        print "RETURNING FROM NEW IN CHILD"
        return object.__new__(cls, *args, **kwds)

Ale kiedy biegnę

B = Child(A) 

Dostaję:

NEW'ING CHILD  
HIJACKING  
NEW'ING CHILD  
RETURNING FROM NEW IN CHILD  
INITILIZING PARENT  
Traceback (most recent call last):  
  File "classes.py", line 52, in <module>  
    B = Child(A)  
TypeError: __init__() takes exactly 4 arguments (2 given) 

Wygląda na to, że hack działa tak, jak oczekiwałem, ale kompilator zgłasza błąd TypeError na końcu. Zastanawiałem się, czy mogę przeciążać TypeError, aby zignorować idiom B = Child (A), ale nie byłem pewien, jak to zrobić. W każdym razie, czy mógłbyś podać mi swoje rozwiązania dziedziczenia z instancji?

Dzięki!

questionAnswers(7)

yourAnswerToTheQuestion