python tkinter模块对象不可调用

时间:2013-11-09 17:45:31

标签: python-3.x tkinter

在python 3.3.2

中获取模块对象不可调用
from tkinter import *
import tkinter as tk

root = tk()
root.geometry('400x400')

2 个答案:

答案 0 :(得分:2)

执行import Tkinter as tk时,tk指的是模块。这与import Tkinter Tkinter引用模块没有什么不同。先前对tk的任何定义都将丢失。

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

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

import tkinter as tk
root = tk.Tk()

此外,您不应混合使用同一个库的两个导入 - 执行import tkinter as tk(推荐)或from tkinter import *但不要同时执行这两个操作。

答案 1 :(得分:0)

我很确定您希望以小写字母调用Tk(或tk.Tk)而不是tk。第一个是您使用from tkinter import *行导入的名称。后者是您使用第二个import语句导入模块的名称。