模块化程序设计概念
1. 模块和包概念的进化史
程序越来越复杂, 语句多了, 很自然的, 我们会将实现同一个语句的函数封装在包里. 统一管理和调用, 于是函数就诞生了.
程序更加复杂, 函数和变量多了, 我们将变量和函数放到一起统一管理和调用, 于是类和对象就诞生了
程序继续复杂, 函数和类更加多了, 我们将实现类似功能的函数和类统统放到一个模块中, 于是模块就诞生了.
程序再复杂, 模块多了, 我们将实现类似功能的模块放到一起, 于是包就诞生了
- Python程序由模块组成, 一个模块对应python源文件, 一般后缀名是 .py
- 模块由语句组成, 运行python程序时, 按照模块中的语句顺序依次执行
- 语句是python程序的构造单元, 用于创建对象, 变量赋值, 调用函数, 控制语句等
2. 标准库模块
与函数类似, 模块也分为标准库模块和用户自定义模块
Python标准库提供了操作系统功能, 网络通信, 文本处理,文件处理, 数学运算等基本功能. 比如: random(随机数) math(数学计算) time(时间处理) file(文件处理) os(和操作系统交互) sys(和解释器交互)等
Python还提供了海量的第三方模块, 使用方式和标准库类似, 功能覆盖了我们能想象到的所有领域. 比如: 科学计算 WEB开发 大数据 人工智能 图形系统等
3. 模块化编程的意义
模块对应于Python的源代码文件(.py文件), 模块中可以定义变量 函数 类 普通语句. 这样, 我们可以将Python程序分解成多个语块, 便于以后的重复使用
模块化编程有如下优势:
- 便于将一个任务分解成多个模块, 实现团队的协同开发, 完成大规模程序
- 实现代码复用, 一个模块实现后, 可以反复调用
- 可维护性增强
4. 模块化编程流程
- 设计API, 进行功能描述
- 编码实现API描述功能
- 在模块中编写测试代码, 并消除全局代码
- 使用私有函数实现不被外部客户端调用的模块函数