New submission from Qiangning Hong: Integers, strings, and bool's hash are all consistent for processes of a same interpreter. However, hash(None) differs.
$ python -c "print(hash(None))" 272931276 $ python -c "print(hash(None))" 277161420 It's wired and make difficulty for distributed systems partitioning data according hash of keys if the system wants the keys support None. This patch makes hash(None) always return 0 to resolve that problem. And it is used in DPark(Python clone of Spark, a MapReduce alike framework in Python, https://github.com/douban/dpark) to speed up portable hash (see line https://github.com/douban/dpark/blob/65a3ba857f11285667c61e2e134dacda44c13a2c/dpark/util.py#L47). davies....@gmail.com is the original author of this patch. All credit goes to him. ---------- messages: 199439 nosy: hongqn priority: normal severity: normal status: open title: Make hash(None) consistent among processes _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue19224> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com