20201222_145_模块化编程的流程_设计和实现分离

首页 » Python » 正文

1.4 模块化编程的流程

模块化编程的一般流程:

  1. 设计 API,进行功能描述;
  2. 编码实现 API 中描述的功能;
  3. 在模块中编写测试代码,并消除全局代码;
  4. 使用私有函数实现不被外部客户端调用的模块函数。

1.5 模块的 API 和功能描述要点

API(Application Programming Interface 应用程序编程接口)是用于描述模块中提供的函数和类的功能描述和使用方式描述。
模块化编程中,首先设计的就是模块的 API(即要实现的功能描述),然后开始编码实现 API 中描述的功能。最后,在其他模块中导入本模块进行调用。
我们可以通过help(模块名)查看模块的API。一般使用时先导入模块,然后通过help函数查看。

ps:老师在这期课程视频中以标准包math为例,讲解了标准库的定义方式和工作原理。

【例】导入 math 模块,并通过 help()查看 math 模块的 API:

import math
help(math)

运行结果(不完全截图):
20201222_145_模块化编程的流程_设计和实现分离

也可以在 python 的 documentation 文档中查询。在开始-程序 python 的目录下可以找到
20201222_145_模块化编程的流程_设计和实现分离
打开documentation后,即可通过索引输入“math”查询到对应的 API 内容
(不完全截图)
20201222_145_模块化编程的流程_设计和实现分离

1.6 模块文档字符串和 API 设计

我们可以在模块的第一行增加一个文档字符串,用于描述模块的相关功能。然后,通过__doc__可以获得文档字符串的内容。

【例1】设计计算薪水模块的 API

"""
本模块用于计算公司员工的薪资
"""
company = 'KDI'


def year_salary(month_salary):
    """根据传入的月薪计算年薪"""
    pass


def day_salary(month_salary):
    """根据传入的月薪计算日薪,一个月按照22.5个工作日(国家规定)计算"""
    pass

上例的API中只有功能描述和规范,需要编码人员按照要求实现编码。

【例2】导入后如何读取文档字符串

import Salary


print(Salary.__doc__)
print(Salary.day_salary.__doc__)

运行结果:
20201222_145_模块化编程的流程_设计和实现分离

1.7 模块的创建和测试代码

每个模块都有一个名称,通过特殊变量__name__可以获取模块的名称。在正常情况下,模块名字对应源文件名。 仅有一个例外,就是当一个模块本身被作为程序入口时(主程序、交互式提示符下),它的__name__的值为“main”。我们可以根据这个特点,将模块源代码文件中的测试代码进行独立的处理。

【例1】导入模块时,模块名字对应源文件名

import Salary_Ok
print(Salary_Ok.__name__)

运行结果:
20201222_145_模块化编程的流程_设计和实现分离

【例2】通过__name==“main”独立处理模块的测试代码
在Slalary_Ok源文件中运行

"""
本模块用于计算公司员工的薪资
"""
company = 'KDI'


def year_salary(month_salary):
    """根据传入的月薪计算年薪"""
    return month_salary * 12


def day_salary(month_salary):
    """根据传入的月薪计算日薪,一个月按照22.5个工作日(国家规定)计算"""
    return month_salary / 22.5


"""
测试代码
"""
if __name__ == '__main__':
    print(__name__)

    print(year_salary(10000))
    print(day_salary(10000))

运行结果:
20201222_145_模块化编程的流程_设计和实现分离

未经允许不得转载:作者:1324-易同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《20201222_145_模块化编程的流程_设计和实现分离》 发布于2020-12-23

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录