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 オブジェクトと異なることはありません。