在Python中转换为其他类

时间:2011-05-22 21:46:37

标签: python inheritance

我有一个代码(简化):

class A(object):
    attrib1 = "a"
    attrib2 = "b"

class B(A):
    flag = True

在我的代码中的某个地方,我有一个A的实例,但我需要创建一个B类实例,它将拥有来自A实例的所有数据...我觉得自己很傻,但我不知道我想做类似的事情:

class B(A):
    def __init__(self,a1,a2,a3,a4,..):
        self.a1 = a1
        self.a2 = a2

并打电话:

obj_b = B( obj_a.a1, obj_a.a2,...)

2 个答案:

答案 0 :(得分:4)

class B(A):
    def __init__(self, obj):
        self.__dict__.update(obj.__dict__)

答案 1 :(得分:1)

另一种选择是更改A实例上的__class__变量。

a = A()
a.__class__ = B