Tkinter module not callable error

741    Asked by BrianKennedy in Python , Asked on Jul 14, 2021

Hi. I am trying to write a python code with tkinter. This is my code:

import Tkinter as Tk
root = Tk()
And I am getting this error: root = Tk() TypeError: 'module' object is not callable

How to solve this?


Answered by Dhananjay Singh

This error statement TypeError: 'module' object is not callable is raised as you are being confused about the Class name and Module name. The problem is in the import line. You are importing a module, not a class. This happened because the module name and class name have the same name. Tk() is a module and not a method. You have to call the Tk() method from the tkinter module. Try this:

import Tkinter as tk

  root = tk.Tk()

This will work!

Note:

In Python, a script is a module, whose name is determined by the filename. So when you start out your file MyClass.py with import MyClass you are creating a loop in the module structure. In Python, everything (including functions, methods, modules, classes etc.) is an object, and methods are just attributes like every other. So, there are no separate namespaces for methods. So when you set an instance attribute, it shadows the class attribute by the same name. The obvious solution is to give attributes of different names.



Your Answer

Interviews

Parent Categories