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 iszero
. - 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'))
Output
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))
Output
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))
Output
int(person) is: 23