Python-Hash()-Funktion ist eine integrierte Funktion und gibt den Hashwert eines Objekts zurück, sofern es einen hat. Der Hash-Wert ist eine Ganzzahl, die zum schnellen Vergleichen von Wörterbuchschlüsseln beim Betrachten eines verwendet wird Wörterbuch .
Syntax der Python-Funktion hash()
Syntax : Hash(obj)
Parameter: obj: Das Objekt, das wir in Hash konvertieren müssen.
Kehrt zurück : Gibt nach Möglichkeit den Hashwert zurück.
Eigenschaften der Funktion hash()
- Mit hash() gehaschte Objekte sind irreversibel und führen zu Informationsverlust.
- hash() gibt einen Hash-Wert nur für unveränderliche Objekte zurück und kann daher als Indikator für die Prüfung auf veränderliche/unveränderliche Objekte verwendet werden.
- Wir können Daten aus Sicherheitsgründen in Python kodieren, indem wir die Funktion hash() verwenden.
Beispiele für die Funktion Python hash()
Beispiel 1: Demonstration der Funktionsweise von hash()
In diesem Beispiel verwenden wir die Funktion hash(), um den Integer-, String- und Float-Hashwert mit hash() auszugeben Python .
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)))> |
>
if else-Anweisung Java
>Ausgabe
The integer hash value is : 4 The string hash value is : 4349415460800802357 The float hash value is : 1291272085159665688>
Beispiel 2: Demonstration der Eigenschaft von hash()
Dieser Python-Code zeigt, wie das funktionierthash()>Funktion verhält sich mit unveränderliche und veränderliche Objekte . Zunächst werden ein Tupel und eine Liste mit denselben Elementen initialisiert. Der Code gibt den Hashwert des Tupels erfolgreich aus. Wenn jedoch versucht wird, den Hashwert der veränderlichen Liste auszugeben, wird ein Fehler ausgelöstTypeError>weil veränderliche Objekte wie Listen nicht direkt gehasht werden können.
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)))> |
>
>
Java sortiert eine Liste
Ausgabe:
The tuple hash value is : 8315274433719620810>
Ausnahmen:
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'> Beispiel 3: hash() für unveränderliches Tupelobjekt
Dieser Python-Code initialisiert ein Tupel mit dem Namenvar>enthält die Zeichen „G“, „E“, „E“ und „K“. Derhash()>Die Funktion wird verwendet, um einen Hashwert für das Tupel zu generierenvar>. In diesem Fall gibt der Code den Hashwert des Tupels aus, bei dem es sich um eine eindeutige Ganzzahl handelt, die das Tupel basierend auf seinem Inhalt und seiner Struktur darstellt.
Python3
# hash() for immutable tuple object> var>=> (>'G'>,>'E'>,>'E'>,>'K'>)> print>(>hash>(var))> |
>
>Ausgabe
3843673861956289951>
Beispiel 4: hash() on ihnen nutzbares Objekt
hash()-Methode, die von einem unveränderlichen Objekt verwendet wird. Wenn wir diese auf ein veränderliches Objekt wie Liste, Menge oder Wörterbücher anwenden, wird ein Fehler generiert.
Python3
cm in Fuß und Zoll
l>=> [>1>,>2>,>3>,>4>]> print>(>hash>(l))> |
iCloud-Bilder auf Android übertragen
>
>
Ausgabe
TypeError: unhashable type: 'list'>
Beispiel 5: hash() für ein benutzerdefiniertes Objekt
Hier überschreiben wir die Methoden __hash()__, um hash() aufzurufen, und die Methode __eq__() prüft die Gleichheit der beiden benutzerdefinierten Objekte.
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))> |
>
>Ausgabe
The hash is: 7627717261227283506 The hash is: 7627717261227283506>