Being a Python programmer, we all have seen this error at some point of time where our shell is showing typeerror: ‘module’ object is not callable and this post will help you understand why we see this error in our console.
Hey guys, welcome back and in this post, we are going to see why we see this error in our python code and how you can avoid this error.
Before talking about the solution to this problem, let’s see why this error occurs.
Reason for Error
The main reason behind TypeError: ‘module’ object is not callable in Python is because the user is confused between Class name and Module name.
The issue occurs in the import line while importing a module as module name and class name have the same name.
Here, the compiler gets confused between function name and module name and it is trying to run a module name as a function and thus failing to do that.
Let’s see this with an example.
Suppose I created a module named Demo.py
and it has a class named Demo
.
class Demo: i = 10
Now, I want to import this into my another python file and use the Demo
class’s variable in this file. Suppose I created a file named test.py
and imported Demo
.
Now I created an object named demoObj
of Demo class
. and tried using the variable i
of that class. Now, this will show me an error TypeError: ‘module’ object is not callable.
import Demo demoObj = Demo() print(demoObj.i)
How to Solve Error?
Now, to overcome this error, we need to import the class in the correct way. Let’s see the correct way of importing that.
from Demo import Demo demoObj = Demo() print(demoObj.i)
This will remove the error which we were facing earlier.
I hope you understood how to overcome TypeError: ‘module’ object is not callable in Python.
If you have found this post helpful, please share it with your friends or colleagues who are looking for python programming.
And if you have started with Python development and stuck in some kind of problem or bug, you can leave your comment here and we will get back to you soon.