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
实现。