由于“messagebox”是“tkinter”包中的模块,为什么我必须使用
from tkinter import messagebox
而不是
import tkinter.messagebox
我的印象是,要在包中导入模块,我必须使用以下语法:
import package_name.module_name
感谢您的帮助。
答案 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'