我有一个代码(简化):
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,...)
答案 0 :(得分:4)
class B(A):
def __init__(self, obj):
self.__dict__.update(obj.__dict__)
答案 1 :(得分:1)
另一种选择是更改A实例上的__class__
变量。
a = A()
a.__class__ = B