基于模块化编程

代码模块化是进行大型项目的必经之路,通过将代码进行模块化、解耦将功能进行模块化。在C语言中通过include语法,将不同模块的头文件进行重复利用;在javascript中使用module export||require语法实现模块的引入。同样在python中也可以引入自定义模块,简化代码。

python模块化

1.定义模块

模块文件实际上就是一个python脚本,脚本中可以向外部提供变量、函数、类等数据结构

## 模块文件readHomolog.py
def readHomologous(fileName,sep,columnId1,columnId2):
   HomologDict={}
if __name__ == "__main__": #调试模块时才会运行
    pass

2.组织模块

当一个工程之中包含有多个模块,并且模块之间具有一定的依赖关系;我们可以将这些模块组织起来形成一个packages。一个packages对应了一个工程所用到的模块,进而在python packa仓库发布。

  • module1.py

  • modlue2.py

packages 目录中需要包含 init.py文件,说明当前目录为packages

## 目录结构
homolog
├── __init__.py
├── __pycache__  ##引入packages后自动创建
└── readHomolog.py

3.引入模块

3.1直接引入

当python可执行脚本与模块文件同属于一个父目录时,可以直接引入

例如run.py脚本与模块文件readHomolog.py同属于一个父目录,所以在run.py中直接import 即可。这里引入的是模块文件中自定义的函数

from readHomolog import readHomologous

homolog
├── __init__.py
├── __pycache__  ##引入packages后自动创建
└── readHomolog.py
|__ run.py

3.2sys模块引入

使用sys模块,指定自定义模块所在目录,python能够自动进行搜索

#在run.py中
import sys
sys.path.append("模块所在绝对路径")
from readHomolog import readHomologous

3.3通过pth文件进行配置

在python的安装路径\Python35\Lib\site-packages中配置对应的pth文件,

pth文件格式

conda中python对应的路径为~/anaconda3/lib/python3.6/site-packages

module_模块名.pth

在脚本中直接引用即可

from readHomolog import readHomologous

参考

Last updated