导入tkinter" messagebox"模块,"导入tkinter.messagebox"语法不起作用?

时间:2014-10-04 16:01:43

标签: python import tkinter messagebox

由于“messagebox”是“tkinter”包中的模块,为什么我必须使用

from tkinter import messagebox

而不是

import tkinter.messagebox

我的印象是,要在包中导入模块,我必须使用以下语法:

import package_name.module_name 

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

导入tkinter.messagebox确实可以正常工作(至少应该在3.4中,在3.4版本中,可能在其他版本中可能存在错误),但导入为tkinter.messagebox,写作很繁琐冗长,如果正在使用tkinter的其余部分,那么这是毫无意义的,因为tkinter.messagebox已被间接导入。因此,如果有任何可读性,通常from tkinter import messagebox被认为更容易,并且不会松散太多。

答案 1 :(得分:0)

messagebox 以及其他一些模块(如 filedialog)在您导入 tkinter 时不会自动导入。根据需要使用 as 和/或 from 显式导入它。检查以下 3 个示例以获得更好的说明-

    >>> import tkinter
    >>> tkinter.messagebox.showinfo(message='hi')

Traceback (most recent call last): File "", line 1, in AttributeError: 'module' object has no attribute 'messagebox'

.

    >>> import tkinter.messagebox
    >>> tkinter.messagebox.showinfo(message='hi')

'ok'

.

 >>> from tkinter import messagebox
    >>> messagebox.showinfo(message='hi')

'ok'