我知道我们不应该依赖hash()的返回值在不同版本之间保持一致。但我有这个遗留代码需要从python 2.7迁移到python 3.6。其中一个关键部分是我需要保持hash()结果相同。
有没有办法实现这个目标?
我试图将PYTHONHASHSEED设置为0,但它没有帮助。
$ PYTHONHASHSEED=0 python3
Python 3.6.3 (default, Oct 8 2017, 23:14:45)
>>> hash('abc')
4596069200710135518
$ python2
Python 2.7.14 (default, Mar 30 2018, 12:43:21)
>>> hash('abc')
1453079729188098211