3
既然“消息框”是在“Tkinter的”包模块,为什么我不得不使用当导入tkinter的“messagebox”模块时,“import tkinter.messagebox”语法不起作用吗?
from tkinter import messagebox
,而不是
import tkinter.messagebox
我的印象是,内导入模块下一个包,我将不得不使用以下语法:
import package_name.module_name
感谢您的帮助。
是的,一般来说你是正确的:'messagebox'是'tkinter'包中的一个模块,并且对于任何普通的Python模块,你都应该可以用任何语法导入它。但是,似乎tkinter在导入时会产生一些魔力(可能是某种缓存),可能是出于性能/内存使用的原因。注意,例如,如果你首先从tkinter导入消息框执行'然后'导入tkinter.messagebox',那么第二个语法确实可以工作。 – 2014-10-04 16:21:44
也可以尝试'导入tkinter',并在做'从tkinter导入消息箱'之后和之后比较一个'dir(tkinter)'。总结一下:你对Python模块/包和导入的理解是正确的,这是Tkinter特有的一些奇怪现象。 – 2014-10-04 16:23:36
...然后你有'import tkMessageBox' – joaquin 2014-10-04 16:55:54