Наследование от экземпляра в Python

В Python я хотел бы создать экземпляр класса Child непосредственно из экземпляра класса Parent. Например:

A = Parent(x, y, z)
B = Child(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)

Но когда я бегу

B = Child(A) 

Я получил:

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) 

Кажется, хак работает так, как я и ожидал, но компилятор выдает TypeError в конце. Мне было интересно, могу ли я перегрузить TypeError, чтобы он игнорировал идиому B = Child (A), но я не был уверен, как это сделать. В любом случае, не могли бы вы дать мне ваши решения для наследования от экземпляров?

Спасибо!

Ответы на вопрос(7)

Ваш ответ на вопрос