gpt4 book ai didi

python - 为什么 from tkinter import * 不导入 Tkinter 的消息框?

转载 作者:行者123 更新时间:2023-12-03 20:23:08 25 4
gpt4 key购买 nike

我正在学习 Python,当我使用 tkinter 尝试一些代码时,我遇到了这个问题:
我使用以下行导入 tkinter 的所有定义:

from tkinter import *
然后我尝试打开一个消息框:
messagebox.showinfo(message='My message')
但是当我运行程序时,如果必须执行这一行,我会收到消息:
Traceback (most recent call last):
File ...
...
NameError: name 'messagebox' is not defined
如果我添加到导入行显式导入消息框:
from tkinter import *
from tkinter import messagebox
它有效,但我不明白我必须添加此导入的原因。

最佳答案

messageboxmodule ,例如messagebox.py .当您 from tkinter import * 时,这不会自动导入到命名空间中。 .自动导入的是什么tkinter.__init__ defines as __all__ :

__all__ = [name for name, obj in globals().items()
if not name.startswith('_') and not isinstance(obj, types.ModuleType)
and name not in {'wantobjects'}]
请注意,tkinter 甚至明确排除了 types.ModuleType 的任何内容。 , 其中 messagebox属于。
如果对此类事情有疑问,您可以随时 check out the CPython tkinter Python lib itself .
Python 文档的 Importing * From a Package包含更多细节。

关于python - 为什么 from tkinter import * 不导入 Tkinter 的消息框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66991017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com