Fonction de hachage Python() est une fonction intégrée et renvoie la valeur de hachage d'un objet s'il en a une. La valeur de hachage est un entier utilisé pour comparer rapidement les clés du dictionnaire tout en consultant un dictionnaire .
Syntaxe de la fonction Python hash()
Syntaxe : hachage (obj)
Paramètres : obj : L'objet que nous devons convertir en hachage.
Retour : Renvoie la valeur hachée si possible.
Propriétés de la fonction hash()
- Les objets hachés à l'aide de hash() sont irréversibles, entraînant une perte d'informations.
- hash() renvoie la valeur hachée uniquement pour les objets immuables, peut donc être utilisée comme indicateur pour vérifier les objets mutables/immuables.
- Nous pouvons coder les données pour des raisons de sécurité en Python en utilisant la fonction hash().
Exemples de fonctions Python hash()
Exemple 1: Démonstration du fonctionnement de hash()
Dans cet exemple, nous utilisons la fonction hash() pour imprimer la valeur de hachage entière, chaîne et flottante à l'aide de hash() dans 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)))> |
>
>Sortir
The integer hash value is : 4 The string hash value is : 4349415460800802357 The float hash value is : 1291272085159665688>
Exemple 2 : Démonstration de la propriété de hash()
Ce code Python montre comment lehash()>la fonction se comporte avec objets immuables et mutables . Il initialise d'abord un tuple et une liste avec les mêmes éléments. Le code imprime avec succès la valeur de hachage du tuple. Cependant, lorsqu'il tente d'imprimer la valeur de hachage de la liste, qui est modifiable, il génère unTypeError>car les objets mutables comme les listes ne peuvent pas être hachés directement.
Python3
comment savoir si quelqu'un vous a bloqué sur Android
# 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)))> |
>
>
Sortir:
The tuple hash value is : 8315274433719620810>
Des exceptions :
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'> Exemple 3 : hash() pour un objet tuple immuable
Ce code Python initialise un tuple nommévar>contenant les caractères « G », « E », « E » et « K ». Lehash()>la fonction est utilisée pour générer une valeur de hachage pour le tuplevar>. Dans ce cas, le code imprime la valeur de hachage du tuple, qui est un entier unique qui représente le tuple en fonction de son contenu et de sa structure.
Python3
# hash() for immutable tuple object> var>=> (>'G'>,>'E'>,>'E'>,>'K'>)> print>(>hash>(var))> |
>
>Sortir
3843673861956289951>
Exemple 4 : hash() activé eux Objet utilisable
Méthode hash() utilisée par un objet immuable, si nous l'utilisons sur un objet mutable comme une liste, un ensemble, des dictionnaires, cela générera une erreur.
Python3
l>=> [>1>,>2>,>3>,>4>]> print>(>hash>(l))> |
>
>
Sortir
TypeError: unhashable type: 'list'>
Exemple 5 : hash() sur un objet personnalisé
Ici, nous allons remplacer les méthodes __hash()__ pour appeler la méthode hash(), et la méthode __eq__() vérifiera l'égalité des deux objets personnalisés.
Python3
scan.chaîne suivante java
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))> |
>
>Sortir
The hash is: 7627717261227283506 The hash is: 7627717261227283506>