from tkinter import *
from tkinter import messagebox
root = Tk()
messagebox.showinfo("Hello world", "you are the best")
root.mainloop()
当我使用*
导入时,为什么必须显式导入messagebox答案 0 :(得分:2)
messagebox
是tkinter
包的子模块。
通配符导入语法不导入子模块,只导入tkinter
包本身中定义的名称。
因此,您需要明确导入messagebox
子模块。
https://docs.python.org/3/library/tkinter.html#tkinter-modules
https://docs.python.org/3/reference/simple_stmts.html#the-import-statement
https://github.com/python/cpython/blob/3.6/Lib/tkinter/__init__.py
https://github.com/python/cpython/blob/3.6/Lib/tkinter/messagebox.py