gpt4 book ai didi

python - 数据类不从其父级继承 __eq__() 方法

转载 作者:行者123 更新时间:2023-12-02 18:18:22 25 4
gpt4 key购买 nike

我有一个父数据类和一个子数据类继承第一个类。我重新定义了__eq__()父数据类中的方法。但是当我比较对象子数据类时,它不使用 __eq__()父数据类中定义的方法。为什么会发生这种情况?我该如何解决这个问题?

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 装饰器添加了默认的 __eq__ 实现。

如果你使用

@dataclass(eq=False)

在 B 类上,它将避免这样做。

参见https://docs.python.org/3/library/dataclasses.html

关于python - 数据类不从其父级继承 __eq__() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61430552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com