La función Python hash() es una función integrada y devuelve el valor hash de un objeto, si lo tiene. El valor hash es un número entero que se utiliza para comparar rápidamente las claves del diccionario mientras se consulta un diccionario.
Sintaxis del método Python hash():
Sintaxis: hash(obj)
Parámetros: obj: el objeto que necesitamos convertir en hash.
Devoluciones: devuelve el valor hash si es posible.
Propiedades de la función hash()
- Los objetos con hash usando hash() son irreversibles, lo que lleva a la pérdida de información.
- hash() devuelve el valor hash solo para objetos inmutables, por lo tanto, se puede usar como un indicador para verificar objetos mutables/inmutables.
Métodos Python hash() Ejemplos
Ejemplo 1: demostración del funcionamiento de hash()
Python3
# Python 3 code to demonstrate # working of hash() # initializing objects int_val = 4 str_val = 'GeeksforGeeks' flt_val = 24.56 # Printing the hash values. # Notice Integer value doesn't change # You'l 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)))
Producción:
The integer hash value is : 4 The string hash value is : -5570917502994512005 The float hash value is : 1291272085159665688
Ejemplo 2: demostración de la propiedad de hash()
Python3
# Python 3 code to demonstrate # property of hash() # 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)))
Producción:
The tuple hash value is : 8315274433719620810
Excepciones:
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'
Ejemplo 3: hash() para objeto tupla inmutable
Python3
# hash() for immutable tuple object var = ('G','E','E','K') print(hash(var))
Producción:
5434435027328283763
Ejemplo 4: hash() en el objeto mutable
hash() método utilizado por un objeto inmutable, si usamos esto en un objeto mutable como lista, conjunto, diccionarios, generará un error.
Python3
l = [1, 2, 3, 4] print(hash(l))
Producción:
TypeError: unhashable type: 'list'
Ejemplo 5: hash() en un objeto personalizado
Aquí anularemos los métodos __hash()__ para llamar a hash(), y el método __eq__() comprobará la igualdad de los dos objetos personalizados.
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))
Producción:
The hash is: -674930604243231063 The hash is: -674930604243231063
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA