PyHash API¶
另请参阅 PyTypeObject.tp_hash
成员和数值类型的哈希。
-
类型 Py_hash_t¶
哈希值类型:有符号整数。
在 3.2 版本加入。
-
类型 Py_uhash_t¶
哈希值类型:无符号整数。
在 3.2 版本加入。
-
PyHASH_BITS¶
PyHASH_MODULUS
中P
的指数n
。在 3.13 版本加入。
-
PyHASH_MULTIPLIER¶
在字符串和各种其他哈希中使用的素数乘数。
在 3.13 版本加入。
-
PyHASH_INF¶
对于正无穷大返回的哈希值。
在 3.13 版本加入。
-
PyHASH_IMAG¶
用于复数虚部的乘数。
在 3.13 版本加入。
-
类型 PyHash_FuncDef¶
PyHash_GetFuncDef()
使用的哈希函数定义。-
Py_hash_t (*const hash)(const void*, Py_ssize_t)¶
哈希函数。
-
const char *name¶
哈希函数名称(UTF-8 编码字符串)。
-
const int hash_bits¶
哈希值的内部大小(以位为单位)。
-
const int seed_bits¶
种子输入的位大小。
在 3.4 版本加入。
-
Py_hash_t (*const hash)(const void*, Py_ssize_t)¶
-
PyHash_FuncDef *PyHash_GetFuncDef(void)¶
获取哈希函数定义。
参见
PEP 456 “安全且可互换的哈希算法”。
在 3.4 版本加入。
-
Py_hash_t Py_HashPointer(const void *ptr)¶
对指针值进行哈希:将指针值作为整数处理(内部将其强制转换为
uintptr_t
)。指针不会被解引用。该函数不会失败:它不会返回
-1
。在 3.13 版本加入。
-
Py_hash_t Py_HashBuffer(const void *ptr, Py_ssize_t len)¶
计算并返回从地址 ptr 开始的 len 字节缓冲区的哈希值。该哈希保证与
bytes
、memoryview
以及其他实现缓冲区协议的内置对象匹配。使用此函数为不可变对象实现哈希,其
tp_richcompare
函数将与另一个对象的缓冲区进行比较。len 必须大于或等于
0
。此函数总是成功的。
在 3.14 版本加入。
-
Py_hash_t PyObject_GenericHash(PyObject *obj)¶
通用哈希函数,旨在放置在类型对象的
tp_hash
插槽中。其结果仅取决于对象的标识。CPython 实现细节: 在 CPython 中,它等效于
Py_HashPointer()
。在 3.13 版本加入。