PyHash API

另請參閱 PyTypeObject.tp_hash 成員和數值型別的雜湊

型別 Py_hash_t

雜湊值型別:有符號整數。

在 3.2 版本加入。

型別 Py_uhash_t

雜湊值型別:無符號整數。

在 3.2 版本加入。

PyHASH_MODULUS

梅森素數 P = 2**n -1,用於數值雜湊方案。

在 3.13 版本加入。

PyHASH_BITS

PyHASH_MODULUSP 的指數 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 版本加入。

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 位元組緩衝區的雜湊值。該雜湊保證與 bytesmemoryview 以及其他實現緩衝區協議的內建物件匹配。

使用此函式為不可變物件實現雜湊,其 tp_richcompare 函式將與另一個物件的緩衝區進行比較。

len 必須大於或等於 0

此函式總是成功的。

在 3.14 版本加入。

Py_hash_t PyObject_GenericHash(PyObject *obj)

通用雜湊函式,旨在放置在型別物件的 tp_hash 插槽中。其結果僅取決於物件的標識。

CPython 實現細節: 在 CPython 中,它等效於 Py_HashPointer()

在 3.13 版本加入。