Python hash() funktion er en indbygget funktion og returnerer hashværdien af et objekt, hvis det har en. Hashværdien er et heltal, der bruges til hurtigt at sammenligne ordbogsnøgler, mens du ser på en ordbog .
Python hash() funktion Syntaks
Syntaks: hash(objekt)
Parametre: obj: Objektet, som vi skal konvertere til hash.
Vender tilbage : Returnerer den hash-værdi, hvis det er muligt.
Egenskaber for hash() funktion
- Objekter, der er hashgjort ved hjælp af hash() er irreversible, hvilket fører til tab af information.
- hash() returnerer kun hashed værdi for uforanderlige objekter, og kan derfor bruges som en indikator til at kontrollere for foranderlige/uforanderlige objekter.
- Vi kan kode data til sikkerhed i Python ved at bruge hash() funktion.
Python hash() Funktionseksempler
Eksempel 1: Demonstrer funktion af hash()
I dette eksempel bruger vi hash()-funktionen til at udskrive heltal-, streng- og float-hashværdien ved hjælp af hash() i Python .
Python3
hashset vs hashmap
# 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)))> |
>
>Produktion
The integer hash value is : 4 The string hash value is : 4349415460800802357 The float hash value is : 1291272085159665688>
Eksempel 2: Demonstrer egenskaben for hash()
Denne Python-kode demonstrerer, hvordanhash()>funktion opfører sig med uforanderlige og foranderlige objekter . Den initialiserer først en tuple og en liste med de samme elementer. Koden udskriver hashværdien af tuple. Men når den forsøger at udskrive listens hashværdi, som kan ændres, hæver den enTypeError>fordi foranderlige objekter som lister ikke kan hash 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)))> |
>
>
Produktion:
jquery dette klik
The tuple hash value is : 8315274433719620810>
Undtagelser:
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 uforanderligt Tuple-objekt
Denne Python-kode initialiserer en tuple ved navnvar>indeholdende tegnene 'G', 'E', 'E' og 'K'. Dethash()>funktion bruges til at generere en hashværdi for tuplevar>. I dette tilfælde udskriver koden hashværdien af tuple, som er et unikt heltal, der repræsenterer tuple baseret på dens indhold og struktur.
Python3
# hash() for immutable tuple object> var>=> (>'G'>,>'E'>,>'E'>,>'K'>)> print>(>hash>(var))> |
>
>Produktion
3843673861956289951>
Eksempel 4: hash() på den M anvendelig Objekt
hash() metode brugt af et uforanderligt objekt, hvis vi bruger dette på et foranderligt objekt som list, set, ordbøger, vil det generere en fejl.
Python3
l>=> [>1>,>2>,>3>,>4>]> print>(>hash>(l))> |
>
tegn til streng i java
>
Produktion
TypeError: unhashable type: 'list'>
Eksempel 5: hash() på et brugerdefineret objekt
Her vil vi tilsidesætte __hash()__-metoderne for at kalde hash(), og __eq__()-metoden vil kontrollere ligheden mellem de to brugerdefinerede objekter.
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))> |
>
>Produktion
The hash is: 7627717261227283506 The hash is: 7627717261227283506>