Python导入语法

Python导入语法,python,syntax,import,Python,Syntax,Import,这是否: import foo as bar 做同样的事情吗 bar = __import__('foo') 有没有理由使用后者 我正在阅读其他人的代码,我找到了后一个,不确定他们为什么不使用前面的语法这两个语句做相同的事情。使用后一种语法的唯一原因是事先不知道模块名称。来自Fredrik Lundh: Python至少提供了三种 导入模块的不同方式。你 可以使用import语句 来自语句,或内置 导入功能。(还有更多 这也是人为的方法,但是 这超出了这个范围 小纸条。) X=\uuuuu

这是否:

import foo as bar
做同样的事情吗

bar = __import__('foo')
有没有理由使用后者


我正在阅读其他人的代码,我找到了后一个,不确定他们为什么不使用前面的语法这两个语句做相同的事情。使用后一种语法的唯一原因是事先不知道模块名称。

来自Fredrik Lundh:

Python至少提供了三种 导入模块的不同方式。你 可以使用
import
语句
来自
语句,或内置
导入功能。(还有更多
这也是人为的方法,但是
这超出了这个范围
小纸条。)

X=
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
('X')的工作原理类似于
导入X
,不同之处在于
1)将模块名称传递为 一个字符串,并显式地 将其分配给您的 当前名称空间

直接使用
\uuuuuu import\uuuuu()
是很少见的,除非您想导入一个只有在运行时才知道名称的模块


正如其他人所说,这两种形式在语义上是相同的。当模块名直到运行时才知道时,使用后面的(
\uuuuuu import\uuuuu('foo')
)。最常见的例子是在配置文件或插件加载系统中命名的模块。例如,Django的配置文件将插件模块定义为python配置文件中的字符串(例如,
some\u plugin='foo.plugin'
),Django使用
\uuuuu import\uuuu

-1加载这些模块,以便逐字复制带有版权声明的站点;因此,投稿必须获得版权声明“本网站上的所有文本均受版权保护,未经作者明确许可,不得重新发布或以其他方式使用。”Fredrik Lundh不会起诉你,但你应该知道这些问题。我会联系他,询问他的许可,以明确归属。小片段可能是合理使用。另一方面,塞格并不努力提供上下文或解释,或他自己的任何话。@Steven:当然,这可能是合法的,但这并不意味着它是正确的。