在 python 3.3.2 中获取模块对象不可调用
from tkinter import *
import tkinter as tk
root = tk()
root.geometry('400x400')
在 python 3.3.2 中获取模块对象不可调用
from tkinter import *
import tkinter as tk
root = tk()
root.geometry('400x400')
当你这样做时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 *
不做两者。
我很确定你想调用Tk
(or tk.Tk
) 而不是tk
全部小写。第一个是您使用该from tkinter import *
行导入的名称。后者是您使用第二个导入语句导入模块的名称。