logo

Python hash() metod

Python hash() funktion är en inbyggd funktion och returnerar hashvärdet för ett objekt om det har ett. Hashvärdet är ett heltal som används för att snabbt jämföra ordboksnycklar medan du tittar på a lexikon .

Python hash() funktion Syntax

Syntax : hash(obj)



Parametrar: obj: Objektet som vi behöver konvertera till hash.

tostring-metoden i java

Returnerar: Returnerar det hashade värdet om möjligt.

Egenskaper för hash()-funktionen

  • Objekt som hashas med hash() är oåterkalleliga, vilket leder till förlust av information.
  • hash() returnerar hashat värde endast för oföränderliga objekt, och kan därför användas som en indikator för att leta efter föränderliga/oföränderliga objekt.
  • Vi kan koda data för säkerhet i Python genom att använda hash()-funktionen.

Python hash() Funktionsexempel

Exempel 1: Demonstrerar att hash() fungerar

I det här exemplet använder vi hash()-funktionen för att skriva ut heltal-, sträng- och float-hashvärdet med hjälp av hash() i Pytonorm .



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)))>

>

c++ gui
>

Produktion

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

Exempel 2: Demonstrerar egenskapen för hash()

Denna Python-kod visar hurhash()>funktion beter sig med oföränderliga och föränderliga objekt . Den initierar först en tupel och en lista med samma element. Koden skriver ut hashvärdet för tupeln. Men när den försöker skriva ut hashvärdet för listan, vilket är föränderligt, höjs aTypeError>eftersom föränderliga objekt som listor inte kan hashas direkt.

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)))>

>

>

Produktion:

byta namn på en katalog
The tuple hash value is : 8315274433719620810>

Undantag:

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'>

Exempel 3: hash() för Immutable Tuple Object

Denna Python-kod initierar en tuppel som hetervar>som innehåller tecknen 'G', 'E', 'E' och 'K'. Dehash()>funktion används för att generera ett hashvärde för tupelnvar>. I det här fallet skriver koden ut hashvärdet för tupeln, vilket är ett unikt heltal som representerar tupeln baserat på dess innehåll och struktur.

Python3




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

>

>

Produktion

3843673861956289951>

Exempel 4: hash() på den M användbart objekt

hash()-metoden som används av ett oföränderligt objekt, om vi använder detta på ett föränderligt objekt som list, set, ordböcker kommer det att generera ett fel.

Python3




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

>

>

Produktion

TypeError: unhashable type: 'list'>

Exempel 5: hash() på ett anpassat objekt

Här kommer vi att åsidosätta __hash()__-metoderna för att anropa hash(), och __eq__()-metoden kommer att kontrollera likheten mellan de två anpassade objekten.

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))>

t flip flop
>

>

Produktion

The hash is: 7627717261227283506 The hash is: 7627717261227283506>