不幸的是,我怀疑这是不可能的。在介绍该行为的提交中添加了test_hash.py
对HashRandomizationTests
类及其子类的查看。他们通过修改环境并使用显式设置启动新进程来测试哈希行为。也许您可以尝试复制该模式。PYTHONHASHSEED
我还注意到您说:“ 每次我运行脚本时,字典内容都会以不同的顺序进行迭代。 ”-我想您知道collections.OrderedDict
吗?这是获得可靠的哈希迭代的正常方法。
如果您愿意在shell环境中设置该值,则也可以将python调用包装在bash脚本中,例如
#! /bin/bash
export PYTHONHASHSEED=0
# call your python program here
只要您可以使用包装脚本,就可以避免操纵整个环境。
甚至只是在命令行中传递值:
$ PYTHONHASHSEED=0 python YOURSCRIPT.py