How to use the Python hex() function?

Python Hex Method

In this article, we’ll cover the Python hex() function.

This function is useful if you want to convert an Integer to a hexadecimal string, prefixed with “0x”.

Let’s look at how we could use this function.

Using the Python hex() function

The Python hex() function has a very simple syntax:

hex_string = hex(val)

Here, val can be an Integer, binary, octal, or a hexadecimal number.

Let’s look at some examples quickly.

print(hex(1000))  # decimal
print(hex(0b111))  # binary
print(hex(0o77))  # octal
print(hex(0XFF))  # hexadecimal



Using Python hex() on a custom object

We can also use hex() on a custom object. But, if we want to use it successfully, we must define the __index__() dunder method for our class.

The hex() method will call __index__(), so we must implement it. This must return a value, which can be a decimal / binary / octal / hexadecimal number.

class MyClass:
    def __init__(self, value):
        self.value = value
    def __index__(self):
        print('__index__() dunder method called')
        return self.value

my_obj = MyClass(255)



__index__() dunder method called

Indeed, as you can see, it returns what we expected.

First, hex() calls the __index__ method on our custom class.

Then, it converts the returned value to a hexadecimal string (255 -> “0xff”)


In this article, we learned about using the hex() function, to convert numerical values into a hexadecimal string.


  • JournalDev article on Python hex()