PyHash API

Se även PyTypeObject.tp_hash-medlemmen och Hashning av numeriska typer.

type Py_hash_t

Hashvärdestyp: signerat heltal.

Tillagd i version 3.2.

type Py_uhash_t

Typ av Hash-värde: osignerat heltal.

Tillagd i version 3.2.

PyHASH_MODULUS

Mersenne-primtalet P = 2**n -1, används för numeriska hashscheman.

Tillagd i version 3.13.

PyHASH_BITS

Exponenten n för P i PyHASH_MODULUS.

Tillagd i version 3.13.

PyHASH_MULTIPLIER

Prime-multiplikator som används i string och olika andra hashar.

Tillagd i version 3.13.

PyHASH_INF

Det hashvärde som returneras för en positiv oändlighet.

Tillagd i version 3.13.

PyHASH_IMAG

Den multiplikator som används för imaginärdelen av ett komplext tal.

Tillagd i version 3.13.

type PyHash_FuncDef

Hashfunktionsdefinition som används av PyHash_GetFuncDef().

const char *name

Hashfunktionens namn (UTF-8-kodad sträng).

const int hash_bits

Intern storlek på hash-värdet i bitar.

const int seed_bits

Storlek på inmatat frö i bitar.

Tillagd i version 3.4.

PyHash_FuncDef *PyHash_GetFuncDef(void)

Hämta definitionen av hashfunktionen.

Se även

PEP 456 ”Säker och utbytbar hashalgoritm”.

Tillagd i version 3.4.

Py_hash_t Py_HashPointer(const void *ptr)

Hash ett pekarvärde: bearbeta pekarvärdet som ett heltal (casta det till uintptr_t internt). Pekaren är inte dereferencerad.

Funktionen kan inte misslyckas: den kan inte returnera -1.

Tillagd i version 3.13.

Py_hash_t Py_HashBuffer(const void *ptr, Py_ssize_t len)

Beräknar och returnerar hashvärdet för en buffert på len byte som börjar på adressen ptr. Hashvärdet kommer garanterat att matcha det i bytes, memoryview och andra inbyggda objekt som implementerar buffer protocol.

Använd denna funktion för att implementera hashing för oföränderliga objekt vars tp_richcompare-funktion jämför med ett annat objekts buffert.

len måste vara större än eller lika med 0.

Denna funktion lyckas alltid.

Tillagd i version 3.14.

Py_hash_t PyObject_GenericHash(PyObject *obj)

Generisk hashfunktion som är avsedd att placeras i ett typobjekts tp_hash slot. Dess resultat beror endast på objektets identitet.

I CPython är det likvärdigt med Py_HashPointer().

Tillagd i version 3.13.