所以,这很有趣——Python 的 hash
函数在 hash(-1) == hash(-2)
时返回 True
,正如其他讨论中所述,但是这个呢?
>>> hash( (-2,2) ) == hash( (2,-2) )
True
这是一项功能吗?
其他一些快速实验:
>>>(-2,2) == (2,-2)
False
>>>hash( (-1,) ) == hash( (-2,) )
True
>>>hash( (-1,-2) ) == hash( (-2,-1) )
True
>>>hash( (-2.01,2.01) ) == hash( (2.01,-2.01) )
False
>>>hash( (-1,1) ) == hash( (1,-1) )
False
(-1,)
,因为否则多余的一对括号是冗余的。 - Niklas B.hash(-1) == hash(-2)
之所以成立并不是一个 bug,而且有其原因(请参考上面的链接)。那么这个现象是否也有类似的解释呢,还是只是一种奇怪的现象?这就是我的问题。 - Tom Stephens