在Python中常常会把库、模块、包这几个词联系在一起,那么相对于库和模块,包的含义却是鲜少有人知道。本文就将介绍包的含义和它的用法,一起看看吧。
包是一种用“点式模块名”构造Python模块命名空间的方法。例如,模块名A.B表示包A中名为B的子模块。正如模块可以区分不同模块之间的全局变量名称一样,点式模块名可以区分NumPy或Pillow等不同多模块包之间的模块名称。
假设要为统一处理声音文件与声音数据设计一个模块集(“包”)。声音文件的格式很多(通常以扩展名来识别,例如:.wav,.aiff,.au),因此,为了不同文件格式之间的转换,需要创建和维护一个不断增长的模块集合。为了实现对声音数据的不同处理(例如,混声、添加回声、均衡器功能、创造人工立体声效果),还要编写无穷无尽的模块流。
导入包时,Python搜索sys.path里的目录,查找包的子目录。
Python只把含__init__.py文件的目录当成包。这样可以防止以string等通用名称命名的目录,无意中屏蔽出现在后方模块搜索路径中的有效模块。最简情况下,__init__.py只是一个空文件,但该文件也可以执行包的初始化代码,或设置__all__变量。
还可以从包中导入单个模块,这段代码加载子模块sound.effects.echo ,但引用时必须使用子模块的全名,例如:
import sound.effects.echo sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
另一种导入子模块的方法可以加载子模块echo,不加包前缀也可以使用。因此,可以按如下方式使用:
from sound.effects import echo echo.echofilter(input, output, delay=0.7, atten=4)
以上就关于Python包的含义是什么的全部内容了,对你有帮助的话可以点赞分享一下哦。