PyHash API¶
PyTypeObject.tp_hash メンバや Hashing of numeric types も参照してください。
-
type Py_hash_t¶
ハッシュ値型: 符号付き整数。
Added in version 3.2.
-
type Py_uhash_t¶
ハッシュ値型: 符号なし整数。
Added in version 3.2.
-
Py_HASH_ALGORITHM¶
A numerical value indicating the algorithm for hashing of
str,bytes, andmemoryview.The algorithm name is exposed by
sys.hash_info.algorithm.Added in version 3.4.
-
Py_HASH_FNV¶
-
Py_HASH_SIPHASH24¶
-
Py_HASH_SIPHASH13¶
Numerical values to compare to
Py_HASH_ALGORITHMto determine which algorithm is used for hashing. The hash algorithm can be configured via the configure--with-hash-algorithmoption.Added in version 3.4: Add
Py_HASH_FNVandPy_HASH_SIPHASH24.Added in version 3.11: Add
Py_HASH_SIPHASH13.
-
Py_HASH_CUTOFF¶
Buffers of length in range
[1, Py_HASH_CUTOFF)are hashed using DJBX33A instead of the algorithm described byPy_HASH_ALGORITHM.A
Py_HASH_CUTOFFof 0 disables the optimization.Py_HASH_CUTOFFmust be non-negative and less or equal than 7.
32-bit platforms should use a cutoff smaller than 64-bit platforms because it is easier to create colliding strings. A cutoff of 7 on 64-bit platforms and 5 on 32-bit platforms should provide a decent safety margin.
This corresponds to the
sys.hash_info.cutoffconstant.Added in version 3.4.
-
PyHASH_MODULUS¶
数値のハッシュ方式で使う メルセンヌ素数
P = 2**n -1。This corresponds to the
sys.hash_info.modulusconstant.Added in version 3.13.
-
PyHASH_BITS¶
PyHASH_MODULUSのPの指数n。Added in version 3.13.
-
PyHASH_MULTIPLIER¶
文字列などさまざまなハッシュで乗数として使う素数。
Added in version 3.13.
-
PyHASH_INF¶
正の無限大に対して返すハッシュ値。
This corresponds to the
sys.hash_info.infconstant.Added in version 3.13.
-
PyHASH_IMAG¶
複素数の虚部に使う乗数。
This corresponds to the
sys.hash_info.imagconstant.Added in version 3.13.
-
type PyHash_FuncDef¶
PyHash_GetFuncDef()が使うハッシュ関数の定義。-
Py_hash_t (*const hash)(const void*, Py_ssize_t)¶
Hash function.
-
const char *name¶
ハッシュ関数の名前 (UTF-8 エンコードの文字列)。
This corresponds to the
sys.hash_info.algorithmconstant.
-
const int hash_bits¶
ハッシュ値の内部でのサイズ (ビット単位)。
This corresponds to the
sys.hash_info.hash_bitsconstant.
-
const int seed_bits¶
シード入力のサイズ (ビット単位)。
This corresponds to the
sys.hash_info.seed_bitsconstant.
Added in version 3.4.
-
Py_hash_t (*const hash)(const void*, Py_ssize_t)¶
-
PyHash_FuncDef *PyHash_GetFuncDef(void)¶
ハッシュ関数の定義を取得します。
参考
PEP 456 「安全で交換可能なハッシュアルゴリズム」。
Added in version 3.4.
-
Py_hash_t Py_HashPointer(const void *ptr)¶
ポインタ値のハッシュを計算します。 ポインタ値を整数として処理します (内部では
uintptr_tにキャストします)。 ポインタの参照先にはアクセスしません。この関数は失敗しません。
-1を返すことはありません。Added in version 3.13.
-
Py_hash_t PyObject_GenericHash(PyObject *obj)¶
型オブジェクトの
tp_hashスロットに設定するための汎用ハッシュ関数です。 結果はオブジェクトの同一性だけで決まります。CPython では
Py_HashPointer()と同等です。Added in version 3.13.