PyHash API

Siehe auch das Mitglied PyTypeObject.tp_hash und Hashing von numerischen Typen.

Typ Py_hash_t

Hash-Wert-Typ: vorzeichenbehaftete Ganzzahl.

Hinzugefügt in Version 3.2.

Typ Py_uhash_t

Hash-Wert-Typ: vorzeichenlose Ganzzahl.

Hinzugefügt in Version 3.2.

PyHASH_MODULUS

Die Mersenne-Primzahl P = 2**n -1, verwendet für das numerische Hash-Schema.

Hinzugefügt in Version 3.13.

PyHASH_BITS

Der Exponent n von P in PyHASH_MODULUS.

Hinzugefügt in Version 3.13.

PyHASH_MULTIPLIER

Primzahl-Multiplikator, der in Zeichenketten und verschiedenen anderen Hashes verwendet wird.

Hinzugefügt in Version 3.13.

PyHASH_INF

Der für eine positive Unendlichkeit zurückgegebene Hash-Wert.

Hinzugefügt in Version 3.13.

PyHASH_IMAG

Der Multiplikator für den Imaginärteil einer komplexen Zahl.

Hinzugefügt in Version 3.13.

Typ PyHash_FuncDef

Hash-Funktionsdefinition, die von PyHash_GetFuncDef() verwendet wird.

Py_hash_t (*const hash)(const void*, Py_ssize_t)

Hash-Funktion.

const char *name

Name der Hash-Funktion (UTF-8-kodierte Zeichenkette).

const int hash_bits

Interne Größe des Hash-Werts in Bits.

const int seed_bits

Größe des Seed-Inputs in Bits.

Hinzugefügt in Version 3.4.

PyHash_FuncDef *PyHash_GetFuncDef(void)

Gibt die Hash-Funktionsdefinition zurück.

Siehe auch

PEP 456 „Sicherer und austauschbarer Hash-Algorithmus“.

Hinzugefügt in Version 3.4.

Py_hash_t Py_HashPointer(const void *ptr)

Hash eines Zeigerwerts: Verarbeitet den Zeigerwert als Ganzzahl (konvertiert ihn intern in uintptr_t). Der Zeiger wird nicht dereferenziert.

Die Funktion kann nicht fehlschlagen: sie kann nicht -1 zurückgeben.

Hinzugefügt in Version 3.13.

Py_hash_t Py_HashBuffer(const void *ptr, Py_ssize_t len)

Berechnet und gibt den Hash-Wert eines Puffers von len Bytes ab der Adresse ptr zurück. Der Hash stimmt garantiert mit dem von bytes, memoryview und anderen eingebauten Objekten überein, die das Pufferprotokoll implementieren.

Verwenden Sie diese Funktion, um das Hashing für unveränderliche Objekte zu implementieren, deren tp_richcompare-Funktion (siehe PyTypeObject.tp_richcompare) mit dem Puffer eines anderen Objekts vergleicht.

len muss größer oder gleich 0 sein.

Diese Funktion ist immer erfolgreich.

Hinzugefügt in Version 3.14.

Py_hash_t PyObject_GenericHash(PyObject *obj)

Generische Hashing-Funktion, die für den `tp_hash`-Slot eines Typobjekts bestimmt ist. Ihr Ergebnis hängt nur von der Identität des Objekts ab.

CPython-Implementierungsdetail: In CPython ist dies äquivalent zu Py_HashPointer().

Hinzugefügt in Version 3.13.