int.__hash__
単純に値を返すようにするのが妥当に思えます。案の定、それが CPython の実装方法のようです:
>>> hash(1)
1
>>> hash(2)
2
>>> hash(123456789)
123456789
>>> hash(-123456789)
-123456789
わかりました、これはすべてのほとんどの整数 xに当てはまりますか?
>>> [x for x in range(-10000, 10000) if hash(x) != x]
[-1]
は?
>>> hash(-1)
-2
なぜ-1
この規則の例外なのですか?