# 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.