PyHash API
**********

另请参阅 "PyTypeObject.tp_hash" 成员和 数字类型的哈希运算。

type Py_hash_t

   哈希值类型：有符号整数。

   Added in version 3.2.

type Py_uhash_t

   哈希值类型：无符号整数。

   Added in version 3.2.

PyHASH_MODULUS

   梅森素数 "P = 2**n -1"，用于数字哈希方案。

   Added in version 3.13.

PyHASH_BITS

   "P" 在 "PyHASH_MODULUS" 中的 "n" 次幂。

   Added in version 3.13.

PyHASH_MULTIPLIER

   质因数被用于字符串和多种其他哈希算法中。

   Added in version 3.13.

PyHASH_INF

   针对正无穷大返回的哈希值。

   Added in version 3.13.

PyHASH_IMAG

   用于复数虚部的乘数。

   Added in version 3.13.

type PyHash_FuncDef

   "PyHash_GetFuncDef()" 使用的哈希函数定义。

   const char *name

      哈希函数名称（UTF-8 编码的字符串）。

   const int hash_bits

      以比特位表示的哈希值内部大小。

   const int seed_bits

      以比特位表示的输入种子值大小。

   Added in version 3.4.

PyHash_FuncDef *PyHash_GetFuncDef(void)

   获取哈希函数定义。

   参见: **PEP 456** "安全且可互换的哈希算法"。

   Added in version 3.4.

Py_hash_t Py_HashPointer(const void *ptr)

   对指针值执行哈希运算：将指针值作为整数来处理（在内部将其转换为
   "uintptr_t" 类型）。 指针不会被撤销引用。

   此函数不会失败：它不可能返回 "-1"。

   Added in version 3.13.

Py_hash_t Py_HashBuffer(const void *ptr, Py_ssize_t len)

   Compute and return the hash value of a buffer of *len* bytes
   starting at address *ptr*. The hash is guaranteed to match that of
   "bytes", "memoryview", and other built-in objects that implement
   the buffer protocol.

   Use this function to implement hashing for immutable objects whose
   "tp_richcompare" function compares to another object's buffer.

   *len* must be greater than or equal to "0".

   This function always succeeds.

   Added in version 3.14.

Py_hash_t PyObject_GenericHash(PyObject *obj)

   将会被放入类型对象的 "tp_hash" 槽位的泛型哈希函数。 其结果值仅取决
   于对象的标识号。

   **CPython 实现细节：** 在 CPython 中，它等价于 "Py_HashPointer()"。

   Added in version 3.13.
