我有一个包含字符串列表的 python 类。我想比较这个类的两个实例。但是,我注意到如果我的班级变大,那么比较写起来会很麻烦。有没有比这更简单的方法来编写__eq__
方法?我使用 List 而不是 Set,因为我想在稍后阶段用来自 JSON 的数据填充这个类。
json_one = {"var_one": "hello", "var_two": ["foo", "bar"]}
json_two = {"var_one": "hello", "var_two": ["bar", "foo"]}
@dataclass
class Test:
var_one: str
var_two: List[str]
def __eq__(self, other):
if isinstance(other, Test):
return self.var_one == other.var_one\
and sorted(self.var_two) == sorted(other.var_two)
return False
test_one = Test(**json_one)
test_two = Test(**json_two)
if test_one == test_two:
print("yay we're equal with lists in different order")