это установит каждый атрибут экземпляра класса (parent
) в атрибут с таким же именем в классе с именем Child
. Обратите внимание, что он будет изменять только атрибуты в классе dict
.
child = Child()
for att, value in parent.__dict__.items():
setattr(child, att, value)
. Вы можете изменить почти ВСЕ атрибуты с помощью этого (__weakref__
), например, не изменится):
class Test():
def __init__(self):
self.t = None
a = Test()
a.t = 'set t'
a.b = 'set b'
class Test2():
def __init__(self):
pass
child = Test2()
for att in dir(a):
try:
setattr(child, att, getattr(a,att))
except AttributeError:
continue
Но вы также будете изменять класс переменной, т.е. child.__class__ == Test