在python中的子类中声明一个默认值



是否可以在python中的子类中声明属性的默认值?

例如:

@dataclass_json
@dataclass
class BaseClass:
b: str
a: str

@dataclass_json
@dataclass
class SubClass(BaseClass):
c: str
d: str
a: str = "my value"

我尝试了这个,我得到了以下错误:

类型错误:非默认参数"c"跟在默认参数后面

我还尝试将a放在子类中的cd之前,但没有成功(同样的错误(。

有办法做到这一点吗?

您的派生类在__init__中的字段顺序如下:

def __init__(b, a, c, d):

这是因为a出现在基类中,所以基构造函数是

def __init__(b, a):

要给a一个默认值,可以给cd默认值(例如None(:

@dataclass_json
@dataclass
class SubClass(BaseClass):
c: str = None
d: str = None
a: str = "my value"

最新更新