python tkinter 模块对象不可调用

Ski*_*ilo 1 tkinter python-3.x

在 python 3.3.2 中获取模块对象不可调用

from tkinter import *
import tkinter as tk

root = tk()
root.geometry('400x400')
Run Code Online (Sandbox Code Playgroud)

Bry*_*ley 6

当您这样做时import Tkinter as tktk指的是一个模块。这与您所做的没有什么不同import Tkinter,其中Tkinter指的是模块。任何先前的定义tk都会丢失。

稍后,当您这样做时root = tk(),您将尝试调用名为 的模块tk。这就是您收到错误的原因TypeError: 'module' object is not callable- 您正在调用 tkinter 模块(因为 )(),但您无法执行此操作。

您犯的错误是 tkinter 模块定义了一个名为 的类Tk,而您想要调用/实例化的正是这个类。更改您的代码来执行此操作:

import tkinter as tk
root = tk.Tk()
Run Code Online (Sandbox Code Playgroud)

另外,您不应该混合同一库的两个导入——要么import tkinter as tk(推荐)混合使用,from tkinter import *要么两者都不做。

  • @SkiloSkilo:如果您收到该错误,我的猜测是您将程序命名为“tkinter.py”,或者您有另一个 python 正在加载的名为“tkinter.py”的文件。尝试进行导入,然后运行以下命令以查看加载的内容:`print(tk.__file__)` (2认同)