Python hash() function is a built-in function and returns the hash value of an object if it has one. The hash value is an integer which is used to quickly compare dictionary keys while looking at a dictionary.
Syntax of Python hash() method:
Syntax : hash(obj)
Parameters : obj : The object which we need to convert into hash.
Returns : Returns the hashed value if possible.
Properties of hash() function
- Objects hashed using hash() are irreversible, leading to loss of information.
- hash() returns hashed value only for immutable objects, hence can be used as an indicator to check for mutable/immutable objects.
Python hash() methods Examples
Example 1: Demonstrating working of hash()
Python3
int_val = 4
str_val = 'GeeksforGeeks'
flt_val = 24.56
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)))
|
Output:
The integer hash value is : 4
The string hash value is : -5570917502994512005
The float hash value is : 1291272085159665688
Example 2: Demonstrating property of hash()
Python3
tuple_val = (1, 2, 3, 4, 5)
list_val = [1, 2, 3, 4, 5]
print("The tuple hash value is : " + str(hash(tuple_val)))
print("The list hash value is : " + str(hash(list_val)))
|
Output:
The tuple hash value is : 8315274433719620810
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'Example 3: hash() for immutable tuple object
Python3
var = ('G','E','E','K')
print(hash(var))
|
Output:
5434435027328283763
Example 4: hash() on the mutable object
hash() method used by one immutable object, if we use this on a mutable object like list, set, dictionaries then it will generate an error.
Python3
l = [1, 2, 3, 4]
print(hash(l))
|
Output:
TypeError: unhashable type: 'list'
Example 5: hash() on a Custom Object
Here we will override the __hash()__ methods to call the hash(), and __eq__() method will check the equality of the two custom objects.
Python3
class Emp:
def __init__(self, emp_name, id):
self.emp_name = emp_name
self.id = id
def __eq__(self, other):
return self.emp_name == other.emp_name and self.id == other.id
def __hash__(self):
return hash((self.emp_name, self.id))
emp = Emp('Ragav', 12)
print("The hash is: %d" % hash(emp))
emp_copy = Emp('Ragav', 12)
print("The hash is: %d" % hash(emp_copy))
|
Output:
The hash is: -674930604243231063
The hash is: -674930604243231063