logo

Metodo Python hash()

Funzione hash() di Python è una funzione incorporata e restituisce il valore hash di un oggetto se ne ha uno. Il valore hash è un numero intero utilizzato per confrontare rapidamente le chiavi del dizionario mentre si guarda a dizionario .

Sintassi della funzione hash() di Python

Sintassi: hash(oggetto)

Parametri: oggetto: L'oggetto che dobbiamo convertire in hash.



Ritorna : Restituisce il valore con hash, se possibile.

Proprietà della funzione hash()

  • Gli oggetti sottoposti ad hashing utilizzando hash() sono irreversibili e portano alla perdita di informazioni.
  • hash() restituisce il valore hash solo per oggetti immutabili, quindi può essere utilizzato come indicatore per verificare la presenza di oggetti mutabili/immutabili.
  • Possiamo codificare i dati per la sicurezza in Python utilizzando la funzione hash().

Esempi di funzioni Python hash()

Esempio 1: Dimostrazione del funzionamento di hash()

In questo esempio, stiamo utilizzando la funzione hash() per stampare il valore hash intero, stringa e float utilizzando hash() in Pitone .

Python3




# initializing objects> int_val>=> 4> str_val>=> 'techcodeview.com'> flt_val>=> 24.56> # Printing the hash values.> # Notice Integer value doesn't change> # You'll have answer later in article.> print>(>'The integer hash value is : '> +> str>(>hash>(int_val)))> print>(>'The string hash value is : '> +> str>(>hash>(str_val)))> print>(>'The float hash value is : '> +> str>(>hash>(flt_val)))>

>

>

forma normale di Greibach
Produzione

The integer hash value is : 4 The string hash value is : 4349415460800802357 The float hash value is : 1291272085159665688>

Esempio 2: Dimostrazione della proprietà di hash()

Questo codice Python dimostra comehash()>la funzione si comporta con oggetti immutabili e mutevoli . Innanzitutto inizializza una tupla e una lista con gli stessi elementi. Il codice stampa correttamente il valore hash della tupla. Tuttavia, quando tenta di stampare il valore hash della lista, che è mutabile, solleva un'eccezioneTypeError>perché gli oggetti mutabili come gli elenchi non possono essere sottoposti direttamente ad hashing.

Python3




# initializing objects> # tuple are immutable> tuple_val>=> (>1>,>2>,>3>,>4>,>5>)> # list are mutable> list_val>=> [>1>,>2>,>3>,>4>,>5>]> # Printing the hash values.> # Notice exception when trying> # to convert mutable object> print>(>'The tuple hash value is : '> +> str>(>hash>(tuple_val)))> print>(>'The list hash value is : '> +> str>(>hash>(list_val)))>

>

>

Produzione:

come chiamare un metodo in Java
The tuple hash value is : 8315274433719620810>

Eccezioni:

Traceback (most recent call last):  File '/home/eb7e39084e3d151114ce5ed3e43babb8.py', line 15, in   print ('The list hash value is : ' + str(hash(list_val))) TypeError: unhashable type: 'list'>

Esempio 3: hash() per oggetto tupla immutabile

Questo codice Python inizializza una tupla denominatavar>contenente i caratteri 'G', 'E', 'E' e 'K'. ILhash()>la funzione viene utilizzata per generare un valore hash per la tuplavar>. In questo caso, il codice stampa il valore hash della tupla, che è un numero intero univoco che rappresenta la tupla in base al suo contenuto e alla sua struttura.

Python3




# hash() for immutable tuple object> var>=> (>'G'>,>'E'>,>'E'>,>'K'>)> print>(>hash>(var))>

>

>

Produzione

3843673861956289951>

Esempio 4: hash() attivo loro Oggetto utilizzabile

metodo hash() utilizzato da un oggetto immutabile, se lo usiamo su un oggetto mutabile come list, set, dizionari, genererà un errore.

Python3




l>=> [>1>,>2>,>3>,>4>]> print>(>hash>(l))>

>

hashmap

>

Produzione

TypeError: unhashable type: 'list'>

Esempio 5: hash() su un oggetto personalizzato

Qui sovrascriveremo i metodi __hash()__ per chiamare hash() e il metodo __eq__() controllerà l'uguaglianza dei due oggetti personalizzati.

Python3




class> Emp:> >def> __init__(>self>, emp_name,>id>):> >self>.emp_name>=> emp_name> >self>.>id> => id> >def> __eq__(>self>, other):> > ># Equality Comparison between two objects> >return> self>.emp_name>=>=> other.emp_name>and> self>.>id> =>=> other.>id> >def> __hash__(>self>):> > ># hash(custom_object)> >return> hash>((>self>.emp_name,>self>.>id>))> emp>=> Emp(>'Ragav'>,>12>)> print>(>'The hash is: %d'> %> hash>(emp))> # We'll check if two objects with the same> # attribute values have the same hash> emp_copy>=> Emp(>'Ragav'>,>12>)> print>(>'The hash is: %d'> %> hash>(emp_copy))>

>

>

Produzione

The hash is: 7627717261227283506 The hash is: 7627717261227283506>