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

“导入X”和“从X导入*”之间的区别?

江英华
2023-03-14
问题内容

在Python中,我不太清楚以下两行代码之间的区别:

import X

要么

from X import *

他们不是都只是从模块X导入所有内容吗?有什么不同?


问题答案:

之后import x,你可以参考的东西x一样x.something。之后from x import *,您可以x像一样直接引用事物something。因为第二种形式将名称直接导入到本地名称空间,所以如果您从许多模块中导入内容,则可能会产生冲突。因此,from x import *不鼓励使用。

您也可以执行from x import something,仅将something导入到本地名称空间,而不导入中的所有内容x。这样做会更好,因为如果您列出了要导入的名称,则可以确切知道要导入的内容,并且可以更轻松地避免名称冲突。



 类似资料:
  • 我刚刚开始了一个小节点项目,它将与MongoDB接口。然而,我似乎无法正确地导入相关的节点模块,即使我已经通过正确地安装了它们。 例如,以下代码抛出一个错误,告诉我“express没有默认导出”: 但是,此代码的工作原理: 所以我的问题是,import和variable/require方法的功能有什么不同?我想在这个项目上解决困扰我导入的任何问题,因为它似乎可能会在将来引起额外的问题。

  • 问题内容: 我有一个用ES6编写的node.js库(与Babel一起编译),在其中导出了以下子模块: 如果从我的主要项目中,我包括这样的图书馆 我可以看到正确的输出,并且可以按预期工作。但是,如果我尝试包含这样的库: 会的。 有人可以解释这里发生了什么吗?这两种导入方法不应该等效吗?如果没有,我想念什么? 问题答案: 正在请求一个具有所有“ lib”命名出口的对象。 被命名为exports,这就是

  • 这是一个非常基本的问题,有一个非常广泛的答案,由@Mark Roddy编写使用导入模块或从模块导入? 根据这个答案,每种方法都有利弊,但结果是相同的,两者都有效。 这样做: 或 应该有用。 我的问题: 考虑这个例子: 其中: 以及: 它给出了以下输出: 所以我很困惑。两者都应该起作用。为什么Python会为第一种方法生成异常?

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

  • 问题内容: 我知道这是一个愚蠢的问题,但我才刚刚开始学习python,但我对python并不了解。我的问题是之间有什么区别 和 为什么我不能写 谁能抽出几分钟来启发我? 问题答案: 将Tkinter中的每个公开对象导入到您当前的名称空间中。 导入名称空间中的“名称空间” Tkinter并 执行相同的操作,但是在本地将其“重命名”为“ tk”以节省您的输入 假设我们有一个模块foo,其中包含类A,B

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