是否可以在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
放在子类中的c
和d
之前,但没有成功(同样的错误(。
有办法做到这一点吗?
您的派生类在__init__
中的字段顺序如下:
def __init__(b, a, c, d):
这是因为a
出现在基类中,所以基构造函数是
def __init__(b, a):
要给a
一个默认值,可以给c
和d
默认值(例如None
(:
@dataclass_json
@dataclass
class SubClass(BaseClass):
c: str = None
d: str = None
a: str = "my value"