logo

Python-hash()-methode

Python-hash()-functie is een ingebouwde functie en retourneert de hashwaarde van een object als het er een heeft. De hash-waarde is een geheel getal dat wordt gebruikt om snel woordenboeksleutels te vergelijken terwijl u naar a kijkt woordenboek .

Python-hash()-functie Syntaxis

Syntaxis: hasj(obj)



Parameters: obj: Het object dat we moeten omzetten in hash.

Geeft terug : Retourneert indien mogelijk de gehashte waarde.

Eigenschappen van de hash()-functie

  • Objecten die zijn gehasht met behulp van hash() zijn onomkeerbaar, wat leidt tot verlies van informatie.
  • hash() retourneert alleen een gehashte waarde voor onveranderlijke objecten en kan daarom worden gebruikt als indicator om te controleren op veranderlijke/onveranderlijke objecten.
  • We kunnen gegevens voor de veiligheid in Python coderen met behulp van de hash()-functie.

Python hash() Functievoorbeelden

Voorbeeld 1: De werking van hash() demonstreren

In dit voorbeeld gebruiken we de hash()-functie om de integer-, string- en float-hash-waarde af te drukken met behulp van hash() in Python .



Python3






cache npm wissen

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

>

rekenkundige logische eenheid
>

Uitvoer

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

Voorbeeld 2: Eigenschap van hash() demonstreren

Deze Python-code laat zien hoe dehash()>functie gedraagt ​​zich met onveranderlijke en veranderlijke objecten . Het initialiseert eerst een tuple en een lijst met dezelfde elementen. De code drukt met succes de hashwaarde van de tupel af. Wanneer het echter probeert de hashwaarde van de lijst af te drukken, die veranderlijk is, wordt a gegenereerdTypeError>omdat veranderlijke objecten zoals lijsten niet rechtstreeks kunnen worden gehasht.

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

>

>

Uitgang:

jfx java-tutorial
The tuple hash value is : 8315274433719620810>

Uitzonderingen :

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

Voorbeeld 3: hash() voor onveranderlijk Tuple-object

Deze Python-code initialiseert een tupel met de naamvar>met de tekens ‘G’, ‘E’, ‘E’ en ‘K’. Dehash()>functie wordt gebruikt om een ​​hashwaarde voor de tuple te genererenvar>. In dit geval drukt de code de hashwaarde van de tupel af, wat een uniek geheel getal is dat de tupel vertegenwoordigt op basis van de inhoud en structuur ervan.

Python3




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

>

>

java-char naar geheel getal
Uitvoer

3843673861956289951>

Voorbeeld 4: hash() aan hen bruikbaar object

hash() methode gebruikt door één onveranderlijk object. Als we dit gebruiken op een veranderlijk object zoals lijst, set, woordenboeken, zal dit een fout genereren.

Python3




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

>

>

Uitvoer

sites zoals bedpage
TypeError: unhashable type: 'list'>

Voorbeeld 5: hash() op een aangepast object

Hier zullen we de methoden __hash()__ overschrijven om de hash() aan te roepen, en de methode __eq__() zal de gelijkheid van de twee aangepaste objecten controleren.

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

>

>

Uitvoer

The hash is: 7627717261227283506 The hash is: 7627717261227283506>