1

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

from tkinter import *
import tkinter as tk

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

2 回答 2

4

当你这样做时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()

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

于 2013-11-09T20:17:37.163 回答
0

我很确定你想调用Tk(or tk.Tk) 而不是tk全部小写。第一个是您使用该from tkinter import *行导入的名称。后者是您使用第二个导入语句导入模块的名称。

于 2013-11-09T17:52:01.380 回答