PyHash API¶
See also the PyTypeObject.tp_hash
member and 数値型のハッシュ化.
-
type Py_hash_t¶
Hash value type: signed integer.
Added in version 3.2.
-
type Py_uhash_t¶
Hash value type: unsigned integer.
Added in version 3.2.
-
PyHASH_MODULUS¶
The Mersenne prime
P = 2**n -1
, used for numeric hash scheme.Added in version 3.13.
-
PyHASH_BITS¶
The exponent
n
ofP
inPyHASH_MODULUS
.Added in version 3.13.
-
PyHASH_MULTIPLIER¶
Prime multiplier used in string and various other hashes.
Added in version 3.13.
-
PyHASH_INF¶
The hash value returned for a positive infinity.
Added in version 3.13.
-
PyHASH_IMAG¶
The multiplier used for the imaginary part of a complex number.
Added in version 3.13.
-
type PyHash_FuncDef¶
Hash function definition used by
PyHash_GetFuncDef()
.-
const char *name¶
Hash function name (UTF-8 encoded string).
-
const int hash_bits¶
Internal size of the hash value in bits.
-
const int seed_bits¶
Size of seed input in bits.
Added in version 3.4.
-
const char *name¶
-
PyHash_FuncDef *PyHash_GetFuncDef(void)¶
Get the hash function definition.
参考
PEP 456 "Secure and interchangeable hash algorithm".
Added in version 3.4.
-
Py_hash_t Py_HashPointer(const void *ptr)¶
Hash a pointer value: process the pointer value as an integer (cast it to
uintptr_t
internally). The pointer is not dereferenced.The function cannot fail: it cannot return
-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)¶
Generic hashing function that is meant to be put into a type object's
tp_hash
slot. Its result only depends on the object's identity.CPython 実装の詳細: In CPython, it is equivalent to
Py_HashPointer()
.Added in version 3.13.