У меня есть два класса, один из которых наследует от другого:Как скопировать все атрибуты одного объекта Python в другой?
class DaParent(object):
name = ''
number = 0
class DaChild(DaParent):
additional = ''
я теперь создать родительский и изменить атрибуты:
parent = DaParent()
parent.name = 'papa'
parent.number = 123
И с этой точки, я хочу, чтобы создать Ребенок, в котором я хочу скопировать все атрибуты из родителя. Я могу, конечно, сделать это так:
child = DaChild()
child.name = parent.name
child.number = parent.number
Дело в том, что при разработке, этот класс будет расти, чтобы иметь достаточно большое количество атрибутов, и я не постоянно требуется изменить вручную копирование атрибуты в ребенка.
Есть ли способ автоматически перенести атрибуты родительского объекта в новый дочерний объект? Все советы приветствуются!
[EDIT] Просто, чтобы объяснить ПОЧЕМУ, я хочу это сделать. Я использую Peewee ORM для взаимодействия с моей БД. Теперь я хочу пересмотреть таблицу (это означает, что если запись будет обновлена, я хочу сохранить все предыдущие версии). Способ, которым я намереваюсь это сделать, - это создать класс Person
и класс PersonRevision
, который наследует класс Person
. Затем я переопределяю peewee save() method, чтобы не только сохранить объект Person
, но и скопировать все атрибуты в объект PersonRevision
и сохранить его. Поскольку я никогда не буду напрямую взаимодействовать с классом PersonRevision
, мне не нужны тени или какие-либо причудливые вещи. Я просто хочу скопировать атрибуты и вызвать объект его метод save()
.
ли вы действовать хотите ли вы, чтобы они были атрибутами * class *, а не * instance *? – jonrsharpe
@jonrsharpe - Насколько я понимаю, они должны быть атрибутами экземпляра, поэтому атрибуты объекта, а не самого класса. – kramer65
Это не ** то, что у вас есть сейчас - атрибуты, определенные внутри 'class', но вне метода экземпляра' def' - это атрибуты класса *. – jonrsharpe