1. 模块化(module)程序设计理念
1.1 模块和包概念的进化史
“量变引起质变”是哲学中一个重要的理论。量变为什么会引起质变呢?本质上理解, 随着数量的增加,管理方式会发生本质的变化;旧的管理方式完全不适合,必须采用新的管 理方式。程序越来越复杂,语句多了,怎么管理?很自然的,我们会将实现同一个功能的语句封 装到函数中,统一管理和调用,于是函数诞生了。 程序更加复杂,函数和变量多了,怎么管理?同样的思路,“物以类聚”,我们将同一 类型对象的“数据和行为”,也就是“变量和函数”,放到一起统一管理和调用,于是“类 和对象”诞生了。 程序继续复杂,函数和类更加多了,怎么办?好,我们将实现类似功能的函数和类统统 放到一个模块中,于是“模块”诞生了。 程序还要复杂,模块多了,怎么办? 于是,我们将实现类似功能的模块放到一起,于 是“包”就诞生了。
Python 程序由模块组成。一个模块对应 python 源文件,一般后缀名是:.py。
模块由语句组成。运行 Python 程序时,按照模块中语句的顺序依次执行。
语句是 Python 程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等。
1.2 标准库模块(standard library)
与函数类似,模块也分为标准库模块和用户自定义模块。 Python 标准库提供了操作系统功能、网络通信、文本处理、文件处理、数学运算等基 本的功能。比如:random(随机数)、math(数学运算)、time(时间处理)、file(文件处理)、 os(和操作系统交互)、sys(和解释器交互)等。
另外,Python 还提供了海量的第三方模块,使用方式和标准库类似。功能覆盖了我们 能想象到的所有领域,比如:科学计算、WEB 开发、大数据、人工智能、图形系统等。
1.3 为什么需要模块化编程
模块(module)对应于 Python 源代码文件(.py 文件)。模块中可以定义变量、函数、 类、普通语句。 这样,我们可以将一个 Python 程序分解成多个模块,便于后期的重 复应用。
模块化编程(Modular Programming)将一个任务分解成多个模块。每个模块就像一个积木一样,便于后期的反复使用、反复搭建。
模块化编程有如下几个重要优势:
便于将一个任务分解成多个模块,实现团队协同开发,完成大规模程序
实现代码复用。一个模块实现后,可以被反复调用。
可维护性增强。
1.4 模块化编程的流程
模块化编程的一般流程:
设计 API,进行功能描述。
编码实现 API 中描述的功能。
在模块中编写测试代码,并消除全局代码。
使用私有函数实现不被外部客户端调用的模块函数。
1.5 模块的 API 和功能描述要点
API(Application Programming Interface 应用程序编程接口)是用于描述模 块中提供的函数和类的功能描述和使用方式描述。
模块化编程中,首先设计的就是模块的 API(即要实现的功能描述),然