Как я могу обновить значения из базового класса данных до того, который унаследован от него?
Пример (Python 3.7.2)
from dataclasses import dataclass
@dataclass
class Person:
name: str
smell: str = "good"
@dataclass
class Friend(Person):
# ... more fields
def say_hi(self):
print(f'Hi {self.name}')
friend = Friend(name='Alex')
f1.say_hi()
печатает "Привет Алекс"
random_stranger = Person(name = 'Bob', smell='OK')
возврат для random_stranger "Персона (имя = 'Bob', запах = 'OK')"
Как превратить random_stranger в друга?
Friend(random_stranger)
возврат«Друг (имя = человек (имя =« Боб », запах =« ОК »), запах =« хорошо »)«
Я бы хотел получить «Друг (имя =« Боб », запах ='OK') "в результате.
Friend(random_stranger.name, random_stranger.smell)
работает, но как мне избежать необходимости копировать все поля?
Или возможно, что я не могу использовать @dataclassдекоратор классов, которые наследуются от классов данных?