我有一组相当复杂的数据(关键字列表等等),它通过一组相当复杂的转换函数来达到最终结构。
在测试过程中,很少有单元测试因为其中一个列表以意外顺序返回项目而导致错误。
我认为这是因为在没有排序密钥的情况下迭代dict,但是我找不到通过代码审查发生这种情况的情况,并且尝试检查中间值很困难,因为故障只发生在我们的CI服务器上。
是否有可能指示python随机化所有dict迭代的顺序?我非常确定这样做会使本地调试变得容易(或完全排除我的预感)。
我愿意做一些hacky事情,比如搞乱dict或w / e的元类,只是为了进行本地测试。我不能轻易做到这样的事情,并且#34;用这个函数调用手动包装所有的dicts"因为我已经尝试与sorted
类似,但它并没有解决问题。
答案 0 :(得分:0)
如果您必须使用SharedPreferences preferences = SharedPreferencesManager.forDynaCpPrf(this);
(并且无法使用dict
作为@Oscar Loper的建议),请使用OrderedDict
。
答案 1 :(得分:0)
Python 2.7.3(以及其他)支持散列随机化(至少在2.x系列中默认关闭),可以通过env PYTHONHASHSEED=random
或-R
CLI参数打开。
感谢@jonrsharpe指出存在这种情况。
请参阅:https://mail.python.org/pipermail/python-dev/2012-April/118676.html