Как лучше всего передать атрибуты одного объекта другому при создании экземпляра?Python

Программы на Python
Anonymous
Как лучше всего передать атрибуты одного объекта другому при создании экземпляра?

Сообщение Anonymous »

Это вопрос о соглашениях в Python.
Скажем, у меня есть класс A и класс B, которые наследуются от класса A, но добавляют атрибут. Более того, у меня есть объект obj_A из класса A. Теперь мне нужно создать экземпляр obj_B с теми же атрибутами, что и obj_A, плюс дополнительный.
Какое решение для этого является предпочтительным?< /p>
Я нашел два решения: ручной способ явной установки атрибутов или через словарь, содержащий атрибуты obj_B. Но это решение кажется искусственным, и я ожидаю, что существует более нативный или питонический способ его реализации. Какое решение лучше?
class A(object):

def __init__(self, attr_1=None, attr_2=None):
self.attr_1 = attr_1
self.attr_2 = attr_2

class B(A):
def __init__(self, attr_1 = None, attr_2 = None, additional_attr = None):
self.additional_attr = additional_attr
super().__init__(attr_1, attr_2)

obj_A = A(1,2)

# ---------------

# manually
obj_B_manually = B(obj_A.attr_1, obj_A.attr_2, '+')

# via dir and a dictionary
attr_dict = {attr: getattr(obj_A, attr) for attr in obj_A.__dict__}
obj_B_dict = B(additional_attr= '+', **attr_dict)


Подробнее здесь: https://stackoverflow.com/questions/786 ... tantiation

Вернуться в «Python»