PyHash API

See also the PyTypeObject.tp_hash member and 数値型のハッシュ化.

type Py_hash_t

Hash value type: signed integer.

バージョン 3.2 で追加.

type Py_uhash_t

Hash value type: unsigned integer.

バージョン 3.2 で追加.


The Mersenne prime P = 2**n -1, used for numeric hash scheme.

バージョン 3.13 で追加.


The exponent n of P in PyHASH_MODULUS.

バージョン 3.13 で追加.


The hash value returned for a positive infinity.

バージョン 3.13 で追加.


The multiplier used for the imaginary part of a complex number.

バージョン 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.

バージョン 3.4 で追加.

PyHash_FuncDef *PyHash_GetFuncDef(void)

Get the hash function definition.


PEP 456 "Secure and interchangeable hash algorithm".

バージョン 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.

バージョン 3.13 で追加.

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().

バージョン 3.13 で追加.