Python Dataclass未从其父级继承_eq__()方法
我有一个父数据类,子数据类继承第一个类。我已经在父数据类中重新定义了Python Dataclass未从其父级继承_eq__()方法,python,inheritance,python-3.7,python-dataclasses,Python,Inheritance,Python 3.7,Python Dataclasses,我有一个父数据类,子数据类继承第一个类。我已经在父数据类中重新定义了\uuuuuueq\uuuuo()方法。但是,当我比较objects子数据类时,它没有使用父数据类中定义的\uuuuueq\uuuuu()方法。为什么会这样?我怎样才能解决这个问题 MWE: from dataclasses import dataclass @dataclass class A: name: str field1: str = None def __eq__(self, other
\uuuuuueq\uuuuo()
方法。但是,当我比较objects子数据类时,它没有使用父数据类中定义的\uuuuueq\uuuuu()
方法。为什么会这样?我怎样才能解决这个问题
MWE:
from dataclasses import dataclass
@dataclass
class A:
name: str
field1: str = None
def __eq__(self, other):
print('A class eq')
return self.name == other.name
@dataclass
class B(A):
field2: str = None
b1 = B('b', 'b1')
b2 = B('b', 'b2')
print(b1 == b2)
@dataclass
装饰器添加了一个默认的\uuuuueq\uuuu
实现
我想如果你用
@dataclass(eq=False)
它将避免这样做
请参见默认情况下,
数据类
装饰器会为装饰类生成一个\uuuuuuuuuuuuuuuu
方法。要禁用此功能(允许B
继承A.\uuuu eq\uuuu
),您需要调整装饰器
@dataclass(eq=False)
class B(A):
field2: str = None
我认为
@dataclass
装饰器添加了一个默认的\uuuuueq\uuuu
实现。