hash() în Python

Funcții încorporate Python 3.0+

Returnează valoarea hash a unui obiect, folosită intern de dicționare și mulțimi.

Sintaxă
hash(obiect)

Ce face hash()

Dicționarele și mulțimile găsesc rapid cheile folosind valoarea lor hash. Doar obiectele imutabile (numere, texte, tupluri de imutabile, frozenset) au hash; listele, dicționarele și mulțimile nu au, de aceea nu pot fi chei.

Valoarea hash a unui text se schimbă de la o rulare la alta a programului (protecție împotriva unor atacuri). Nu o salva și nu o folosi ca identificator permanent; pentru asta există modulul hashlib.

Parametri

Parametru Descriere
obiect Un obiect imutabil.

Ce returnează

Un număr întreg.

Exemple

Exemplul 1: Obiecte cu și fără hash

print(hash(42), hash(True), hash((1, 2)) == hash((1, 2)))
print(hash("Ana") == hash("Ana"))
try:
    hash([1, 2])
except TypeError as e:
    print("Eroare:", e)

Rezultat

42 1 True
True
Eroare: unhashable type: 'list'

Greșeli frecvente

  • Salvezi hash(text) într-un fișier sau într-o bază de date. La următoarea rulare valoarea va fi alta; folosește hashlib.sha256().

Comenzi înrudite

  • dict (dicționare): Dicționarul păstrează perechi cheie: valoare și găsește rapid valoarea după cheie.
  • set (mulțimi): Mulțimea este o colecție fără duplicate și fără ordine, utilă pentru valori unice și operații de reuniune sau intersecție.
  • frozenset(): O mulțime imutabilă, care poate fi cheie de dicționar sau element al altei mulțimi.
  • id(): Returnează identitatea unui obiect: un număr unic cât timp obiectul există.