PyHash API¶
PyTypeObject.tp_hash 멤버와 숫자 형의 해싱 를 참조하십시오.
-
type Py_hash_t¶
해시 값 유형: 부호 있는 정수.
Added in version 3.2.
-
type Py_uhash_t¶
해시 값 유형: 부호 없는 정수.
Added in version 3.2.
-
Py_HASH_ALGORITHM¶
str,bytes, 그리고memoryview를 해싱하는 알고리즘을 나타내는 수치 값입니다.알고리즘 이름은
sys.hash_info.algorithm을 통해 노출됩니다.Added in version 3.4.
-
Py_HASH_FNV¶
-
Py_HASH_SIPHASH24¶
-
Py_HASH_SIPHASH13¶
해싱에 사용되는 알고리즘을 결정하기 위해
Py_HASH_ALGORITHM과 비교하는 수치 값입니다. 해시 알고리즘은 구성 옵션인--with-hash-algorithm을 통해 설정할 수 있습니다.Added in version 3.4:
Py_HASH_FNV`와 :c:macro:!Py_HASH_SIPHASH24`를 추가합니다.Added in version 3.11:
Py_HASH_SIPHASH13을 추가합니다.
-
Py_HASH_CUTOFF¶
길이가
[1, Py_HASH_CUTOFF)범위에 있는 버퍼는Py_HASH_ALGORITHM이 설명하는 알고리즘 대신 DJBX33A를 사용하여 해싱됩니다.Py_HASH_CUTOFF이 0이면 최적화가 비활성화됩니다.Py_HASH_CUTOFF은 음수가 아니어야 하며 7보다 작거나 같아야 합니다.
32비트 플랫폼은 충돌하는 문자열을 생성하기가 더 쉽기 때문에 64비트 플랫폼보다 작은 차단값(cutoff)을 사용해야 합니다. 64비트 플랫폼에서는 7, 32비트 플랫폼에서는 5의 차단값을 사용하는 것이 적절한 안전 마진을 제공합니다.
이 값은
sys.hash_info.cutoff상수에 해당합니다.Added in version 3.4.
-
PyHASH_MODULUS¶
수치 해시 체계에 사용되는 메르센 소수(Mersenne prime)
P = 2**n -1입니다.이 값은
sys.hash_info.modulus상수에 해당합니다.Added in version 3.13.
-
PyHASH_BITS¶
PyHASH_MODULUS에서P의 지수n입니다.Added in version 3.13.
-
PyHASH_MULTIPLIER¶
문자열 및 기타 다양한 해시에서 사용되는 소수 승수(multiplier)입니다.
Added in version 3.13.
-
PyHASH_INF¶
양의 무한대에 대해 반환되는 해시 값입니다.
이 값은
sys.hash_info.inf상수에 해당합니다.Added in version 3.13.
-
PyHASH_IMAG¶
복소수의 허수부에 사용되는 승수입니다.
이 값은
sys.hash_info.imag상수에 해당합니다.Added in version 3.13.
-
type PyHash_FuncDef¶
PyHash_GetFuncDef()에서 사용하는 해시 함수 정의입니다.-
Py_hash_t (*const hash)(const void*, Py_ssize_t)¶
해시 함수.
-
const char *name¶
해시 함수 이름(UTF-8 인코딩된 문자열).
이 값은
sys.hash_info.algorithm상수에 해당합니다.
-
const int hash_bits¶
해시 값의 내부 크기(비트).
이 값은
sys.hash_info.hash_bits상수에 해당합니다.
-
const int seed_bits¶
시드 입력의 크기(비트).
이 값은
sys.hash_info.seed_bits상수에 해당합니다.
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 Py_HashBuffer(const void *ptr, Py_ssize_t len)¶
ptr 주소부터 시작하는 len 바이트의 버퍼에 대한 해시 값을 계산하여 반환합니다. 이 해시는
bytes,memoryview및 buffer protocol 를 구현하는 기타 내장 객체의 해시 값과 일치함이 보장됩니다.tp_richcompare함수가 다른 객체의 버퍼와 비교되는 불변 객체에 대한 해싱을 구현할 때 이 함수를 사용하십시오.len 은
0보다 크거나 같아야 합니다.이 함수는 항상 성공합니다.
Added in version 3.14.
-
Py_hash_t PyObject_GenericHash(PyObject *obj)¶
타입 객체의
tp_hash슬롯에 넣기 위한 일반적인 해싱 함수입니다. 이 결과는 객체의 식별성(identity)에만 의존합니다.CPython에서 이는
Py_HashPointer()와 동일합니다.Added in version 3.13.