Python中的import工作方式

目录

 

1.import的工作方式

2.import语句的样式

3.绝对导入和相对导入


1.import的工作方式

Python模块是具有.py扩展名的文件,而Python包是其中具有模块的任何文件夹(或者在Python 2中是包含__init__.py文件的文件夹)。import从Python标准库,第三方软件包和您自己的本地软件包中导入 packages and modules 

import gyf

Python import的工作方式通过import gyf来说明,Python会首先在sys.modules中查找模块名gyf,sys.modules是Python将模块名称映射到的已缓存模块字典,如果在已缓存模块字典中没查找到,Python则在内置模块(Python标准库)中查找模块名gyf,如果在内置模块中仍然找不到该名称,那么Python将在sys.path定义的目录列表中搜索该名称。此列表通常包括当前目录,当前目录首先被搜索。

当Python找到模块时,它将其绑定到本地作用域中的一个名称。这意味着现在已经定义了abc,并且可以在当前文件中使用,而不会引发NameError。如果找不到该模块,将抛出异常ModuleNotFoundError。

2.import语句的样式

导入应始终写在文件顶部,在任何模块注释和文档字符串之后。

导入应根据导入的模块进行划分。通常分为三类:标准库导入(Python的内置模块)、相关的第三方导入(已安装但不属于当前应用程序的模块)、本地应用程序导入(属于当前应用程序的模块)。每组导入都应以空格分隔。

3.绝对导入和相对导入

绝对导入必须从top-level package folder(顶级程序包文件夹)中为每个程序包或文件提供详细的路径。这有点类似于它的文件路径,但是我们使用点(.)而不是斜杠(/)。例如:

from package1.subpackage2.module5 import function6

相对导入使用点符号来指定位置。单点表示所引用的模块或软件包与当前位置位于同一目录中。两个点表示它位于当前位置的父目录中,即上面的目录中。三个点表示它位于祖父母目录中,依此类推。

from ..subpackage4.module5 import function6

 相对进口的一个明显优势是它们非常简洁。不幸的是,相对导入可能比较混乱,尤其是对于目录结构可能会更改的共享项目。相对导入也没有绝对导入更易读,而且很难说出导入资源的位置。请记住,通常您应该选择绝对导入而不是相对导入,除非路径复杂并且会使语句过长。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值