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