Это вопрос о соглашениях в 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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Применить значения свойств от одного объекта к другому из одного типа автоматически?
Anonymous » » в форуме C# - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Максимизация уже запущенного экземпляра приложения одного экземпляра в QT
Anonymous » » в форуме C++ - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-