In Python, I am using dataclass with the following class hierarchy:
from dataclasses import dataclass
@dataclass
class Foo:
id: str
@classmethod
def fromRaw(cls, raw: dict[str, str]) -> 'Foo':
return Foo(raw['id'])
@dataclass
class Bar(Foo):
name: str
@classmethod
def fromRaw(cls, raw: dict[str, str]) -> 'Bar':
return Bar(raw['id'], raw['name'])
However, it feels a bit double to instantiate all Foo members manually again in Bar::fromRaw().
Is there a better way to re-use the ancestor's alternate constructor for example?