def my_hash(string):
    x = ord(string[0]) << 7
for c in string:
    x = 1000003 * x ^ ord(c)
x ^= len(string)
needCorrection = x & 1 << 65
x %= 2 ** 64
if needCorrection:
    x = -~(-x ^ 18446744073709551615)
if x == -1:
    x = -2
return x
Как __hash__ реализован в Python 3.2?