Error TypeError: 'int' object is not callable
This is a common coding error that occurs when you declare a variable with the same name as inbuilt int() function used in the code. Python compiler gets confused between variable 'int' and function int() because of their similar names and therefore throws typeerror: 'int' object is not callable error.
To overcome this problem, you must use unique names for custom functions and variables.
Example
##Error Code
#Declaring and Initializing a variable
int = 5;
#Taking input from user {Start}
productPrice = int(input("Enter the product price : "))
productQuantity = int(input("Enter the number of products : "))
#Taking input from user {Ends}
# variable to hold the value of effect on the balance sheet
# after purchasing this product.
costOnBalanceSheet = productPrice * productQuantity
#printing the output
print(costOnBalanceSheet)
Output
Enter the product price : 2300
Traceback (most recent call last):
File "C:\Users\Webartsol\AppData\Local\Programs\Python\Python37-32\intObjectnotCallable.py", line 3, in <module>
productPrice = int(input("Enter the product price : "))
TypeError: 'int' object is not callable
In the example above we have declared a variable named `int` and later in the program, we have also used the Python inbuilt function int() to convert the user input into int values.
Python compiler takes “int” as a variable, not as a function due to which error “TypeError: 'int' object is not callable” occurs.
How to resolve typeerror: 'int' object is not callable
To resolve this error, you need to change the name of the variable whose name is similar to the in-built function int() used in the code.
#Code without error
#Declaring and Initializing a variable
productType = 5;
#Taking input from user {Start}
productPrice = int(input("Enter the product price : "))
productQuantity = int(input("Enter the number of products : "))
#Taking input from user {Ends}
# variable to hold the value of effect on the balance sheet
# after purchasing this product
costOnBalanceSheet = productPrice * productQuantity
#printing the output
print(costOnBalanceSheet)
OUTPUT:
Enter the product price : 3500
Enter the number of products : 23
80500
In the above example, we have just changed the name of variable “int” to “productType”.
How to avoid this error?
To avoid this error always keep the following points in your mind while coding:
- Use unique and descriptive variable names
- Do not use variable name same as python in-built function name, module name & constants
- Make the function names descriptive and use docstring to describe the function