Python · Avançado · Inglês · Técnico
hash randomization
Mecanismo que sorteia a semente do hash de str e bytes a cada execução, para dificultar ataques de colisão. Por isso a ordem de um set de strings varia.
Onde usar
Explica testes que passam num dia e falham no outro porque dependem da ordem de um set. Em code review, o pedido é ordenar antes de comparar, ou fixar PYTHONHASHSEED só para depurar.
Em código
print(hash('ola')) # muda a cada execução
print({'a', 'b', 'c'}) # ordem varia
# PYTHONHASHSEED=0 python app.py
# fixa a semente (só para depurar)Exemplos
That test depends on set order, hash randomization breaks it.
Esse teste depende da ordem do set, a hash randomization o quebra.
Set PYTHONHASHSEED to reproduce the failure.
Defina PYTHONHASHSEED para reproduzir a falha.
Cuidado
Não use hash() de strings como identificador persistente: o valor muda entre execuções; use hashlib quando precisar de algo estável.
Sinônimos
PYTHONHASHSEED