问题描述:请参阅以下两个代码A和代码B的示例。
-
代码A:
from tkinter import messagebox messagebox.showinfo("Hello ")
-
代码B:
from tkinter import * tkinter.messagebox.showinfo("Hello ")
问题:为什么代码B不起作用?
(我不想在使用缩写tk时感到困惑,我可以写tkinter(
第一个对于消息框是正确的。
与许多python包一样,并非所有功能都是自动导入的。某些模块,如消息框和字体模块,必须显式导入。
在第二种情况下,不应该使用通配符导入。尽管很多tkinter教程都是以这种方式导入tkinter的,但PEP8是标准的,它不鼓励通配符导入。
虽然它确实会导入许多tkinter类和变量,但它仍然不会导入messagebox模块。