python 包的概念
好人成佛需要九九八十一难,可是坏人只需要放下屠刀。
什么是包?
包是一种管理 Python 模块命名空间的形式,采用"点模块名称"
目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包,主要是为了避免一些滥俗的名字
最简单的情况,放一个空的 :file:__init__.py就可以了。当然这个文件中也可以包含一些初始化代码或者为(将在后面介绍的) __all__变量赋值
用户可以每次只导入一个包里面的特定模块:
import sound.effects.echo
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
还有一种导入子模块方法:
from sound.effects import echo
echo.echofilter(input, output, delay=0.7, atten=4)
还有一种就是直接导入函数或者变量:
from sound.effects.echo import echofilter
echofilter(input, output, delay=0.7, atten=4)
注意:
import语法会首先把item当作一个包定义的名称,如果没找到,再试图按照一个模块去导入。如果还没找到,恭喜,一个:exc:ImportError 异常被抛出了。
反之,如果使用形如import item.subitem.subsubitem这种导入形式,除了最后一项,都必须是包,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字。