模块(module)
1.模块(module)程序设计理念
1.1模块和包概念的进化史
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n10v5v5P-1635334201624)(C:\Users\ZHY\AppData\Roaming\Typora\typora-user-images\image-20211027181657139.png)]
- Python 程序由模块组成。一个模块对应 python 源文件
- 模块由语句组成
- 语句是Python程序的构造单元
1.2标准库模块(standard library
与函数类似,模块也分为标准库模块和用户自定义模块。 Python 标准库提供了操作系统功能、网络通信、文本处理、文件处理、数学运算等基 本的功能。比如:random(随机数)、math(数学运算)、time(时间处理)、file(文件处理)、 os(和操作系统交互)、sys(和解释器交互)等。
另外,Python 还提供了海量的第三方模块,使用方式和标准库类似。功能覆盖了我们 能想象到的所有领域,比如:科学计算、WEB 开发、大数据、人工智能、图形系统等。
1.3 为什么需要模块化编程
- 便于将一个任务分解成多个模块,实现团队协同开发,完成大规模程序
- 实现代码复用。一个模块实现后,可以被反复调用。
- 可维护性增强。
1.4 模块化编程的流程
模块化编程的一般流程:
- 设计 API,进行功能描述。
- 编码实现 API 中描述的功能。
- 在模块中编写测试代码,并消除全局代码。
- 使用私有函数实现不被外部客户端调用的模块函数。
1.5 模块的 API 和功能描述要点
API(Application Programming Interface 应用程序编程接口)是用于描述模 块中提供的函数和类的功能描述和使用方式描述。模块化编程中,首先设计的就是模块的 API(即要实现的功能描述),然后开始编 码实现 API 中描述的功能。最后,在其他模块中导入本模块进行调用。我们可以通过help(模块名)查看模块的API。一般使用时先导入模块 然后通过help函数查看
1.6 模块的创建和测试代码
每个模块都有一个名称,通过特殊变量__name__可以获取模块的名称。在正常情况下,模块名字对应源文件名。 仅有一个例外,就是当一个模块被作为程序入口时(主 程序、交互式提示符下),它的__name__的值为“main”。我们可以根据这个特 点,将模块源代码文件中的测试代码进行独立的处理。
例如:
import math
math.__name__ #输出'math'
通过__name==“main”独立处理模块的测试代码
1.7 模块文档字符串和 API 设计
我们可以在模块的第一行增加一个文档字符串,用于描述模块的相关功能。然后,通过 __doc__可以获得文档字符串的内容。
import MySalary
print(MySalary.__doc__)
print(MySalary.yearSalary