我以为
from tkinter import *
将所有名称导入到我当前文件的命名空间中,以便我可以直接访问所有名称。但是,我在实例化消息框时收到错误:
messagebox.showinfo("Something")
我添加
from tkinter import messagebox
一切正常。我不明白为什么。没有第一个导入语句已导入tkinter模块中的所有名称,包括messagebox?
答案 0 :(得分:2)
导入模块(tkinter
)不会自动导入子模块(tkinter.messagebox
),除非模块明确为您执行。
答案 1 :(得分:0)
messagebox是tkinter的子模块。 你应该导入模块" messagebox" (使用"导入......作为..."使其更短)
import tkinter.messagebox
tkinter.messagebox.showinfo("Something")
或者当你弄明白自己时,
from tkinter import messagebox
答案 2 :(得分:0)
由于messagebox是Tkinter模块中的文件,因此只需调用Tkinter就无法访问它。要导入子模块,您必须调出特定文件,如下所示:
from tkinter import messagebox