首页 > 解决方案 > 从 tkinter Python 导入东西

问题描述

我是 Python 编程的新手。我正在使用 tkinter 模块为图形用户界面导入东西。

我通过键入以下语句从 tkinter 模块导入所有内容:

from tkinter import *

为什么我仍然需要从同一个模块中单独导入某些类,就像simpledialog我们已经使用上述语句从 tkinter 导入了所有内容一样?

from tkinter import simpledialog

如果不单独导入simpledialog,则会引发错误。

标签: pythontkinter

解决方案


是的,它确实会引发错误,因为simpledialog不是 tkinter 的直接模块

基本上,模块是每个文件,文件扩展名为 .py 并由适当的 Python 代码组成。使这样的文件成为模块不需要特殊的语法。一个模块可以包含任意对象,例如文件、类或属性。导入后可以访问所有这些对象。

如果您在不显式导入 simpledialog 的情况下执行dir(tkinter),它将显示除 simpledialog 之外的结果。

这是因为库结构。它不会自动导入 tkinter 的所有模块。一旦你使用import tkinter.simpledialog,它会向你显示其中的 simpledialog 模块,这意味着 simpledialog 之前从未从 tkinter 导入。

此外,建议使用import tkinter而不是from tkinter import astrik,除非在交互式 Python shell 中工作。一个原因是名称的来源可能非常模糊,因为无法看到它可能是从哪个模块导入的。


推荐阅读