Как лучше всего передать атрибуты одного объекта другому при создании экземпляра?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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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