In Python, we can use the parenthesis "
" for multiple purposes such as we can use them as small brackets to compute mathematical computation
, define a tuple
or use them in the function definition and calling
But if we mistreat the mathematical computation parenthesis usages with function calling parenthesis, the Python interpreter throws the
TypeError: ‘int’ object is not callable
In this Python error guide, we will walk through this Python error and discuss why it raises and how to solve it. We will also discuss some examples that will give you a better understanding of this Python error. So let's get started.
The Python Error: "TypeError: ‘int’ object is not callable"
The Error statement is itself divided into two parts
TypeError: The TypeError occurs in the Python program when we mishandle the property of one data type with another.
int object is not callable: This is the error message, that is telling us we are trying to call a function using an integer variable name.
Why this Error Occur in Python
According to the Python syntax, to call a function, we need to write the function name followed by the parenthesis.
def my_function(): print("This is a function") # call function my_function()
But if, instead of the function name, we put the parenthesis after an integer value or variable, we receive the
"TypeError: ‘int’ object is not callable"
def my_function(): print("This is a function") number = 20 # parenthesis after a integer variable number()
Traceback (most recent call last): File "main.py", line 6, in <module> number() TypeError: 'int' object is not callable
There are two major common cases when most new Python learners commit this error.
- Use the same name for function and integer variables.
- Forget to put the multiplication operator while performing a mathematical calculation.
Scenario 1: Using the same name for int variable and function.
The most common scenario when Python learners commit this mistake is when they use the same name for the function and the integer variable.
Let's create an example where we want to calculate the total sum of our bill list. And we use the Python inbuilt function called
to calculate the sum of the list and use the same variable name to store the total sum.
bill = [12, 34, 23, 53, 10, 9] # total integer sum sum = 0 # using the inbuilt Python sum method sum = sum(bill) print("The total bill is: ",sum)
Traceback (most recent call last): File "main.py", line 7, in <module> sum = sum(bill) TypeError: 'int' object is not callable
Break the code
We are getting this error because, in line 4, we defined a new integer variable by the name
sum = 0
. Now for the complete program, Python will treat the sum as an integer value(until we change it).
But in line 7, we are trying to compute the sum of the
list using the Python
function, but now Python is confused between the names, so it will treat the
as the integer object, not as an inbuilt function, and throw the
TypeError 'int' object is not callable
The solution to the above problem is very simple. We just need to change the integer
object name to another name, so the inbuilt function can be invoked.
bill = [12, 34, 23, 53, 10, 9] # total integer total = 0 # using the inbuilt Python sum method total = sum(bill) print("The total bill is: ",total)
The total bill is: 141
Scenario 2: Forget to put the multiplication operator while performing a mathematical calculation
In mathematics, we use brackets to represent a mathematical expression. There we can use the () brackets to represent the multiplication operation between the numbers inside and outside the bracket.
for instance (in mathematics)
2(3+4) = 14
But this syntax is invalid in Python. In Python, we need to explicitly specify the mathematic operator between the number and opening & closing parenthesis. for instance, if we rewrite the above expression in Python, we have to write it in this manner.
a = 2 b = 3 c = 4 # error result = a(b+c) print(result)
Traceback (most recent call last): File "main.py", line 6, in <module> result = a(b+c) TypeError: 'int' object is not callable
Break the code
In the above example
all are integer, but in line 6, we are missing the * operator between the
and opening parenthesis
that's why Python is calling
as a function that leads to the
TypeError: 'int' object is not callable
The solution for the above error is very simple, we just need to specify the
multiplication operator between
a = 2 b = 3 c = 4 # solved result = a+(b+c) print(result)
In this Python tutorial, we learned what is
TypeError: ‘int’ object is not callable
Error in Python and how to solve it. If you look closely at the error message, you will get an overall idea of what this error is all about. This error generally occurs in Python when we try to call a function using an integer name. To solve this problem, all you need to do is remove the parenthesis after the integer variable name.
If you are still getting this error in your Python program, you can comment your code and query in the comment section. We will try to help you in debugging.
People are also reading:
- Delete Emails in Python
- Python typeerror: ‘str’ object is not callable Solution
- Python Numpy Array Tutorial
- Python TypeError: ‘method’ object is not subscriptable Solution
- Numpy Dot Product
- Python Error: TypeError: ‘tuple’ object is not callable Solution
- Python Check If File or Directory Exists
- Python SyntaxError: unexpected EOF while parsing Solution
- Online Python Compiler
- Python ‘numpy.ndarray’ object is not callable Solution
Leave a Comment on this Post