模块是指把定义和函数存放在.py后缀的文件中,供其他程序引入使用。
模块定义
#新建一个文件mathUtil.py,编辑以下内容
PI = 3.14
def plus(num1, num2):
return num1 + num2
def minus(num1, num2):
return num1 - num2
模块引用
新建一个测试文件test.py,通过from
和import
关键字来引入mathUtil.py
import mathUtil 等价于 from mathUtil import *
print(mathUtil.PI) -> 3.14
print(mathUtil.plus(3,5)) -> 8
print(mathUtil.minus(3,5)) -> -2
from mathUtil import plus
print(mathUtil.plus(3,5)) -> 8
查看当前模块所有定义的名称
dir()
函数可以用来查看当前模块下所有定义的变量及函数名称,包括系统默认名称
import mathUtil
print(dir()) ->
['PI', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__',
'__loader__', '__name__', '__package__', '__spec__', 'minus', 'plus']
#dir(module)函数,查看指定模块下所有名称
import math
print(dir(math)) ->
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh',
'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh',
'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor',
'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite',
'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf',
'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
包结构
#例如下面包结构,
sound/ 顶层包
__init__.py 初始化 sound 包
formats/ 文件格式转换子包
__init__.py
wavread.py
wavwrite.py
aiffread.py
aiffwrite.py
auread.py
...
effects/ 声音效果子包
__init__.py
echo.py
surround.py
reverse.py
...
filters/ filters 子包
__init__.py
equalizer.py
vocoder.py
...
#导入模块
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)