PyHash API
See also the PyTypeObject.tp_hash member and numeric-hash.
Hash value type: signed integer.
3.2
Hash value type: unsigned integer.
3.2
A numerical value indicating the algorithm for hashing of
str,bytes, andmemoryview.The algorithm name is exposed by
sys.hash_info.algorithm.3.4
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.3.4
The Mersenne prime
P = 2**n -1, used for numeric hash scheme.This corresponds to the
sys.hash_info.modulusconstant.3.13
The exponent
nofPinPyHASH_MODULUS.3.13
Prime multiplier used in string and various other hashes.
3.13
The hash value returned for a positive infinity.
This corresponds to the
sys.hash_info.infconstant.3.13
The multiplier used for the imaginary part of a complex number.
This corresponds to the
sys.hash_info.imagconstant.3.13
Hash function definition used by
PyHash_GetFuncDef.Hash function.
Hash function name (UTF-8 encoded string).
This corresponds to the
sys.hash_info.algorithmconstant.Internal size of the hash value in bits.
This corresponds to the
sys.hash_info.hash_bitsconstant.Size of seed input in bits.
This corresponds to the
sys.hash_info.seed_bitsconstant.3.4
When Python is built with
Py_HASH_ALGORITHMset toPy_HASH_EXTERNAL, the application embedding Python must define this variable to supply a hash implementation instead of using one of Python's built-in hash algorithms.3.4
3.15 3.19 Use one of the built-in hash algorithms instead.
Get the hash function definition.
456"Secure and interchangeable hash algorithm".3.4
Hash a pointer value: process the pointer value as an integer (cast it to
uintptr_tinternally). The pointer is not dereferenced.The function cannot fail: it cannot return
-1.3.13
Compute and return the hash value of a buffer of len bytes starting at address ptr. The hash is guaranteed to match that of
bytes,memoryview, and other built-in objects that implement thebuffer protocol <bufferobjects>.Use this function to implement hashing for immutable objects whose
~PyTypeObject.tp_richcomparefunction compares to another object's buffer.len must be greater than or equal to
0.This function always succeeds.
3.14
Generic hashing function that is meant to be put into a type object's
tp_hashslot. Its result only depends on the object's identity.In CPython, it is equivalent to
Py_HashPointer.3.13
谢谢你的反馈!