hash()在不同的OS上返回不同的值

时间:2016-10-12 02:23:00

标签: python python-2.7 hash python-internals

当python builtin hash()刚刚跨平台连接时。我有一个应用程序使用内置hash() 'test'。两个系统都是64位,python 2.7.12

窗口:

>>> hash('test')
1308370872

的Linux:

>>> hash('test')
2314058222102390712

为什么会这样?

1 个答案:

答案 0 :(得分:3)

无法保证Python中的值hash返回。您似乎正在使用32位Windows Python(这是一个猜测),并且您在Linux上使用64位python(再次猜测)。 IIRC(我还没有检查过),默认hash(item)返回item的地址作为其哈希值。

如果您想拥有可以跨操作系统进行比较的值,请查看hashlib