@slickstars

Как мапить обьекты в Python?

Всем привет, у меня такой вопрос связанный с маппингом обьектов в Python.
А точнее, к примеру если есть 2 обьекта, с идентичными полями, но 1 отличается названием, как в таком случае мапить обьект. Просто по отдельности кжадое поле или есть более удобный способ, может кто знает?
  • Вопрос задан
  • 478 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
В Python это какая-то ненужная хрень, но если очень надо, то реализовать легко:

from copy import deepcopy

def copy_instance_state(src_obj, dst_obj, field_map={}):
    for src_field_name in dir(src_obj):
        if src_field_name.startswith('__'):
            continue
        dst_field_name = src_field_name if src_field_name not in field_map else field_map[src_field_name]
        setattr(dst_obj, dst_field_name, deepcopy(getattr(src_obj, src_field_name)))

class A:
    a = 1
    b = 2
    c = 3

class B:
    a = 0
    b = 0
    z = 0

a = A()
b = B()

copy_instance_state(a, b, {'c': 'z'})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы