]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #27601: Improve example in the "Hashing of numeric types" section
authorBerker Peksag <berker.peksag@gmail.com>
Mon, 25 Jul 2016 01:55:51 +0000 (04:55 +0300)
committerBerker Peksag <berker.peksag@gmail.com>
Mon, 25 Jul 2016 01:55:51 +0000 (04:55 +0300)
* Fix return value of hash_compute() implementation
* Rename variable names to hash_value to improve readability

Patch by Emanuel Barry.

Doc/library/stdtypes.rst

index db1c2d0359233b0351dd9d043d0b5340404462c5..2996eef27cce03cd971ce4b4069a60edb2e12672 100644 (file)
@@ -692,16 +692,16 @@ number, :class:`float`, or :class:`complex`::
            m, n = m // P, n // P
 
        if n % P == 0:
-           hash_ = sys.hash_info.inf
+           hash_value = sys.hash_info.inf
        else:
            # Fermat's Little Theorem: pow(n, P-1, P) is 1, so
            # pow(n, P-2, P) gives the inverse of n modulo P.
-           hash_ = (abs(m) % P) * pow(n, P - 2, P) % P
+           hash_value = (abs(m) % P) * pow(n, P - 2, P) % P
        if m < 0:
-           hash_ = -hash_
-       if hash_ == -1:
-           hash_ = -2
-       return hash_
+           hash_value = -hash_value
+       if hash_value == -1:
+           hash_value = -2
+       return hash_value
 
    def hash_float(x):
        """Compute the hash of a float x."""
@@ -716,13 +716,13 @@ number, :class:`float`, or :class:`complex`::
    def hash_complex(z):
        """Compute the hash of a complex number z."""
 
-       hash_ = hash_float(z.real) + sys.hash_info.imag * hash_float(z.imag)
+       hash_value = hash_float(z.real) + sys.hash_info.imag * hash_float(z.imag)
        # do a signed reduction modulo 2**sys.hash_info.width
        M = 2**(sys.hash_info.width - 1)
-       hash_ = (hash_ & (M - 1)) - (hash & M)
-       if hash_ == -1:
-           hash_ == -2
-       return hash_
+       hash_value = (hash_value & (M - 1)) - (hash_value & M)
+       if hash_value == -1:
+           hash_value = -2
+       return hash_value
 
 .. _typeiter: