导入Python模块的区别[重复]

Posted

技术标签:

【中文标题】导入Python模块的区别[重复]【英文标题】:Difference in importing Python module [duplicate] 【发布时间】:2017-06-21 18:58:44 【问题描述】:

最近,Python import 语句的一个问题让我印象深刻。

问题:我有一个包foo,其中包含一个模块bar,我需要将其称为spams

有两种方法可以执行此操作:

方法01import foo.bar as spams

方法02from foo import bar as spams

第一种方法是我通常使用的,另一种方法是我发现的。但我意识到第二种方法更“明确”。 我想知道这两种方法(如果有的话)在以下方面有什么区别:

效率 Python 代码 约定

【问题讨论】:

@RahulKP 虽然它是什么连接它不是 OP 所要求的 @RahulKP 我相信我的问题比你提到的问题更具体,也有些不同。 @mkrieger1 我相信我的问题比你提到的问题更具体,也有些不同。 【参考方案1】:

关于第一点和第三点,here你可以找到所有关于它的信息。

导入子模块存在一个稍微特殊的情况。

声明:

import os.path

将模块 os 本地存储为 os,以便 导入的子模块路径可作为 os.path 访问。结果:

import os.path as p

在 p 中存储 os.path ,而不是 os 。

这使得它实际上与:

from os import path as p

如您所见,官方记录了效率惯例在这里并不重要。

至于更多pythonic代码:根据我的经验,我主要看到

将 foo.bar 导入为垃圾邮件

我认为这是因为可读性,但这取决于您所在的团队。

【讨论】:

以上是关于导入Python模块的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python 模块化 模块搜索顺序重复导入模块加载列表

python模块导入的方法与区别

python 模块导入import和import from区别

在 Python 中从导入的模块导入时输出 [重复]

Python 3与Python 2的模块导入语法的区别

导入整个模块与仅从 python 中的模块导入所需的方法有啥区别? [复制]