logo

Python hash() metode

Python hash() funksjon er en innebygd funksjon og returnerer hash-verdien til et objekt hvis det har en. Hash-verdien er et heltall som brukes til raskt å sammenligne ordboknøkler mens du ser på en ordbok .

Python hash() funksjon Syntaks

Syntaks: hasj (obj)

Parametere: obj: Objektet som vi trenger for å konvertere til hasj.



Returnerer: Returnerer den hashed verdien hvis mulig.

Egenskaper for hash()-funksjonen

  • Objekter som hash() er irreversible, noe som fører til tap av informasjon.
  • hash() returnerer hash-verdi bare for uforanderlige objekter, og kan derfor brukes som en indikator for å se etter mutbare/uforanderlige objekter.
  • Vi kan kode data for sikkerhet i Python ved å bruke hash()-funksjonen.

Python hash() funksjonseksempler

Eksempel 1: Demonstrere at hash() fungerer

I dette eksemplet bruker vi hash()-funksjonen til å skrive ut heltalls-, streng- og float-hash-verdien ved å bruke hash() i Python .

Python3


binært tre vs binært søketre



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

>

>

Produksjon

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

Eksempel 2: Demonstrerer egenskapen til hash()

Denne Python-koden viser hvordanhash()>funksjonen oppfører seg med uforanderlige og foranderlige objekter . Den initialiserer først en tuppel og en liste med de samme elementene. Koden skriver ut hash-verdien til tuppelen. Men når den prøver å skrive ut hash-verdien til listen, som kan endres, øker den enTypeError>fordi mutbare objekter som lister ikke kan hashes direkte.

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

>

>

Produksjon:

10 1 millioner
The tuple hash value is : 8315274433719620810>

Unntak:

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

Eksempel 3: hash() for uforanderlig tuppelobjekt

Denne Python-koden initialiserer en tuppel som hetervar>som inneholder tegnene «G», «E», «E» og «K». Dehash()>funksjonen brukes til å generere en hash-verdi for tuppelenvar>. I dette tilfellet skriver koden ut hash-verdien til tuppelen, som er et unikt heltall som representerer tuppelen basert på dens innhold og struktur.

Python3




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

>

>

Produksjon

3843673861956289951>

Eksempel 4: hash() på M brukbart objekt

hash()-metoden brukt av ett uforanderlig objekt, hvis vi bruker dette på et mutbart objekt som liste, sett, ordbøker, vil det generere en feil.

Python3




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

>

hvordan lese fra en csv-fil i java

>

Produksjon

TypeError: unhashable type: 'list'>

Eksempel 5: hash() på et tilpasset objekt

Her vil vi overstyre __hash()__-metodene for å kalle hash(), og __eq__()-metoden vil sjekke likheten mellom de to egendefinerte objektene.

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

>

>

Produksjon

The hash is: 7627717261227283506 The hash is: 7627717261227283506>