我正在使用 collections.Counter。到目前为止它很棒,除了我希望它可以将同一类的对象计算为相同的对象。我怎样才能做到这一点?我尝试覆盖类上的hash () 方法,以便所有实例的哈希值相同。现在,如果我这样做Counter([Type1(), Type1(), Type2(), Type2()])
,它会返回{<Type1 object at...>:1,<Type1 object at...>:1,<Type2 object at...>:1,<Type2 object at...>:1}
,我希望它返回类似的东西{"Type1":2, "Type2":2}
。这可能吗?我正在浏览文档,无法弄清楚如何使其工作。
我应该补充一点,我使用的类本质上是常量值的包装器。将它们包装在一个类中更方便。在任何情况下,一个 Type1 对象都不会与另一个 Type1 对象不同。