在Python中导入*语句

时间:2014-08-23 07:39:28

标签: python import tkinter

我以为

from tkinter import *

将所有名称导入到我当前文件的命名空间中,以便我可以直接访问所有名称。但是,我在实例化消息框时收到错误:

messagebox.showinfo("Something")

我添加

from tkinter import messagebox

一切正常。我不明白为什么。没有第一个导入语句已导入tkinter模块中的所有名称,包括messagebox?

3 个答案:

答案 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