Python模塊
- 引入模塊
# 方式一
import module
module.function('xxx')
# 方式二
from module import * #導(dǎo)入所有除了以下劃線( _ )開(kāi)頭的命名
# from module import function,function1,function2
function('xxx')
- 以腳本方式運(yùn)行模塊茁帽,name 被設(shè)置為 "main"
>>> python module.py
if __name__ == "__main__":
pass
- 模塊搜索路徑
- 當(dāng)前目錄
- sys.path 變量中給出的目錄列表
- 輸入腳本的目錄(當(dāng)前目錄)
- 環(huán)境變量 PYTHONPATH表示的目錄列表中搜索
- Python 默認(rèn)安裝路徑中搜索
- 模塊編譯:
- 為加快加載模塊的速度,Python 會(huì)在 _pycache_ 目錄下以 module.version.pyc 名字緩存每個(gè)模塊編譯后的版本
- Python 會(huì)檢查源文件與編譯版的修改日期以確定它是否過(guò)期并需要重新編譯
- Python會(huì)永遠(yuǎn)重新編譯而且不會(huì)存儲(chǔ)直接從命令行加載的模塊
- 如果沒(méi)有源模塊它不會(huì)檢查緩存
- 標(biāo)準(zhǔn)模塊庫(kù),是一個(gè)依賴于底層平臺(tái)的配置選項(xiàng)集合
-
包
包結(jié)構(gòu)
- 必須包含__init__.py
- __all__ = ["echo", "surround", "reverse"] 指定*導(dǎo)入的子模塊集合
- 如果沒(méi)有定義 __all__ 迅办, from sound.effects import * 語(yǔ)句不會(huì)從 sound.effects 包中導(dǎo)入所有的子模塊
- 導(dǎo)入方式
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)