我曾认为hash()
函数在所有Python解释器中都是相同的。但是,当我在我的手机上使用Python for Android运行它时,它与其他Python解释器有所不同。对于字符串和数字类型的哈希值,我得到了相同的结果,但是对于内置数据类型的哈希值却不同。
PC Python解释器(Python 2.7.3)
>>> hash(int)
31585118
>>> hash("hello sl4a")
1532079858
>>> hash(101)
101
移动Python解释器(Python 2.6.2)
>>> hash(int)
-2146549248
>>> hash("hello sl4a")
1532079858
>>> hash(101)
101
有人能告诉我这是一个 bug 还是我理解错了什么吗?
hash()
的结果会有所不同,但也许你可以使用base64代替:http://docs.python.org/2/library/base64.html - gitaarik