当前位置: 首页 > 面试题库 >

将tkinter导入为tk和从tkinter导入之间的区别

邬朗
2023-03-14
问题内容

我知道这是一个愚蠢的问题,但我才刚刚开始学习python,但我对python并不了解。我的问题是之间有什么区别

from Tkinter import *

import Tkinter as tk

为什么我不能写

import Tkinter

谁能抽出几分钟来启发我?


问题答案:

from Tkinter import *将Tkinter中的每个公开对象导入到您当前的名称空间中。 import Tkinter导入名称空间中的“名称空间” Tkinter并 import Tkinter as tk执行相同的操作,但是在本地将其“重命名”为“
tk”以节省您的输入

假设我们有一个模块foo,其中包含类A,B和C。

然后import foo使您可以访问foo.A,foo.B和foo.C。

当您也import foo as x可以访问它们时,但是以xA,xB和xC的名称 from foo import *将直接在当前名称空间中导入A,B和C,因此您可以使用A,B和C来访问它们。

from foo import A, C可以将A和C导入,而不能将B导入当前名称空间。

您还可以执行from foo import B as Bar,这将使B在名称Bar下(在您当前的名称空间中)可用。

因此通常如此:当您只需要模块的一个对象时,您可以执行from module import objectfrom module import object as whatiwantittocall

如果需要某些模块功能,可以执行import moduleimport module as shortname保存您的输入。

from module import * 不建议这样做,因为您可能会无意间遮蔽(“覆盖”)名称,并且可能无法跟踪属于该模块的对象。



 类似资料:
  • 问题内容: 当我回答Tkinter问题时,我通常会尝试自己运行代码,但有时会出现以下错误: 当我看问题时,我看到它们以小写的t导入: 我总是输入大写的T: 总是对我有用。和之间有什么区别? 问题答案: 这很简单。 对于python2,它是: 对于python3,它是: 这是您如何一劳永逸地忘记这种混乱的方式:

  • 问题内容: 在Python中,我不太清楚以下两行代码之间的区别: 要么 他们不是都只是从模块X导入所有内容吗?有什么不同? 问题答案: 之后,你可以参考的东西一样。之后,您可以像一样直接引用事物。因为第二种形式将名称直接导入到本地名称空间,所以如果您从许多模块中导入内容,则可能会产生冲突。因此,不鼓励使用。 您也可以执行,仅将导入到本地名称空间,而不导入中的所有内容。这样做会更好,因为如果您列出了

  • 我看了它的例子,但没有发现。我在linux Ubuntu(PopOs)上使用python3,sudo apt get安装python3 tk dit不工作 Traceback(最近的调用最后):文件"Test.py",第3行,在导入tkinterModuleNotFoundError: No模块命名'tkinter'

  • 问题内容: 我很惊讶地发现 和 对全球成员产生了不同的影响。我想确认我的实验是正确的行为。 在第一个示例中,更改foo模块中的成员将反映在所有导入foo的代码中。但是,在以后的情况下更改该成员似乎仅影响导入该成员的文件。换句话说,使用后一种方法将为每个导入文件提供其自己的foo成员副本。 我想要的行为是可以从所有文件访问foo.x,可以从所有文件更改它,并在所有文件中反映该更改(如果愿意,则为真正

  • 问题内容: 说,我们在ES6中使用React。我们将React和Component导入为 为什么语法不同?我们不能按以下规定使用吗? 问题答案: 下面是文档的。 以上是默认导入。默认导入使用导出。只能有一个默认导出。 但这是成员导入(称为导入)。成员进口与出口。可以有很多成员出口。 您可以使用以下语法导入两者: 在JavaScript中,默认导入和命名导入被拆分,因此您不能像默认导入那样导入命名导

  • 问题内容: 下面的代码在IDLE内运行良好,否则会出现“ NameError:全局名称’messagebox’未定义”的情况。但是,如果我明确声明,则无论从哪里运行都很好。 为什么IDLE不需要显式import语句,而在其他地方则需要它? 问题答案: 消息框是tkinter的单独子模块,因此只需从tkinter进行完整导入即可: 不导入消息框 必须将其显式导入,如下所示: 以与必须显式导入ttk相