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

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