Python int()

The int() method returns an integer object from any number or string.

The syntax of int() method is:

int(x=0, base=10)

int() Parameters

int() method takes two arguments:

  • x - Number or string to be converted to integer object.
    The default argument is zero.
  • base - Base of the number in x.
    Can be 0 (code literal) or 2-36.

Return value from int()

int() method returns:

  • an integer object from the given number or string treats default base as 10
  • (No parameters) returns 0
  • (If base given) treats the string in the given base (0, 2, 8, 10, 16)

Example 1: How int() works in Python?

# integer
print("int(123) is:", int(123))

# float
print("int(123.23) is:", int(123.23))

# string
print("int('123') is:", int('123'))


int(123) is: 123
int(123.23) is: 123
int('123') is: 123

Example 2: How int() works for decimal, octal and hexadecimal?

# binary 0b or 0B
print("For 1010, int is:", int('1010', 2))
print("For 0b1010, int is:", int('0b1010', 2))

# octal 0o or 0O
print("For 12, int is:", int('12', 8))
print("For 0o12, int is:", int('0o12', 8))

# hexadecimal
print("For A, int is:", int('A', 16))
print("For 0xA, int is:", int('0xA', 16))


For 1010, int is: 10
For 0b1010, int is: 10
For 12, int is: 10
For 0o12, int is: 10
For A, int is: 10
For 0xA, int is: 10

Example 3: int() for custom objects

Internally, int() method calls an object's __int__() method.

So, even if an object isn't a number, you can convert the object into an integer object.

You can do this by overriding __index__() and __int__() methods of the class to return a number.

These two methods should return the same value as older versions of Python uses __int__(), while newer uses __index__() method.

class Person:
    age = 23

    def __index__(self):
        return self.age
    def __int__(self):
        return self.age

person = Person()
print('int(person) is:', int(person))


int(person) is: 23