Python 3.x 如何将类实例中的所有属性和函数复制到python中的另一个类?

Python 3.x 如何将类实例中的所有属性和函数复制到python中的另一个类?,python-3.x,class,inheritance,Python 3.x,Class,Inheritance,假设我们有一个未知类的实例 parent=Unknown() 这个对象不一定是特定类的实例(它可能是任何类的实例,但我知道潜在类的名称)。我想定义一个新类来继承该对象的属性和函数。因为我不知道这个实例的类是什么,所以我不能使用python类继承。我知道如果父类已知,我们可以使用以下代码: class Child(Unknown) def __init__(self): super().__init__() 但是在我的例子中,我不知道什么是父类,我只有它的一个实例。

假设我们有一个未知类的实例

parent=Unknown()
这个对象不一定是特定类的实例(它可能是任何类的实例,但我知道潜在类的名称)。我想定义一个新类来继承该对象的属性和函数。因为我不知道这个实例的类是什么,所以我不能使用python类继承。我知道如果父类已知,我们可以使用以下代码:

class Child(Unknown)
     def __init__(self):
         super().__init__()
但是在我的例子中,我不知道什么是父类,我只有它的一个实例。所以我想做这样一件事:

class Child()
     def __init__(self, parent):
         super().__init__()

有人有想法吗?

这将把类(
parent
)实例的每个属性设置为名为
Child
的类中的同一命名属性。请注意,它只会更改类
dict
中的属性

child = Child()
for att, value in parent.__dict__.items():
    setattr(child, att, value)
您可以使用此选项更改几乎所有属性(
\uuuuuwakref\uuuu
),例如,将不会更改):


但是,您也将更改变量的类,即
子类。
这将把类的实例(
父类
)的每个属性设置为名为
子类
的类中相同的命名属性。请注意,它只会更改类
dict
中的属性

child = Child()
for att, value in parent.__dict__.items():
    setattr(child, att, value)
您可以使用此选项更改几乎所有属性(
\uuuuuwakref\uuuu
),例如,将不会更改):


但是,您也将更改变量的类,即
子类。\uuuuu class\uuuu==Test

谢谢您的解决方案。第一个答案只复制属性(类变量而不是类方法)。第二个答案复制了“a”中的所有想法,并删除了Test2属性。它甚至将对象“child”的类从“Test2”更改为“Test”,这不是我想要的。第一个答案只复制属性(类变量而不是类方法)。第二个答案复制了“a”中的所有想法,并删除了Test2属性。它甚至将对象“child”的类从“Test2”更改为“Test”,这不是我想要的。