如何将基础数据类的值升级到继承它的数据类中?
示例(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()
打印出 "Hi Alex"
random_stranger = Person(name = 'Bob', smell='OK')
返回随机陌生人 "Person(name='Bob', smell='OK')"。
如何将随机陌生人变成朋友?
Friend(random_stranger)
返回 "Friend(name=Person(name='Bob', smell='OK'), smell='good')"。
我想要的结果是 "Friend(name='Bob', smell='OK')"。
Friend(random_stranger.name, random_stranger.smell)
这个方法可以运行,但我如何避免复制所有字段?
或者说,我不能在继承自dataclasses的类上使用@dataclass装饰器吗?
Person
类中创建一个方法def become_friend(self): return Friend(self.name, self.smell, other_parameters)
? - sanyassh