Python hash() method (original) (raw)

Last Updated : 26 Jul, 2024

**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 that is used to quickly compare dictionary keys while looking at a dictionary.

**Python hash() function Syntax

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

Python hash() Function Examples

**Example 1: Demonstrating working of hash()

In this example, we are using hash() function to print the integer, string, and float hash value using hash() in Python.

Python `

initializing objects

int_val = 4 str_val = 'GeeksforGeeks' 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)))

`

Output

The integer hash value is : 4 The string hash value is : 4349415460800802357 The float hash value is : 1291272085159665688

**Example 2: Demonstrating property of hash()

This Python code demonstrates how the hash() function behaves with immutable and mutable objects. It first initializes a tuple and a list with the same elements. The code successfully prints the hash value of the tuple. However, when it attempts to print the hash value of the list, which is mutable, it raises a TypeError because mutable objects like lists can’t be hashed directly.

Python `

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

`

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

This Python code initializes a tuple named var containing the characters ‘G’, ‘E’, ‘E’, and ‘K’. The hash() function is used to generate a hash value for the tuple var. In this case, the code prints the hash value of the tuple, which is a unique integer that represents the tuple based on its content and structure.

Python `

hash() for immutable tuple object

var = ('G','E','E','K')

print(hash(var))

`

Output

3843673861956289951

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.

Python `

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.

Python `

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

`

Output

The hash is: 7627717261227283506 The hash is: 7627717261227283506