python模块化编程_Python的模块化编程

本文介绍了一个复杂的Python程序如何通过模块化编程实现团队合作开发。通过一个图书馆借书管理系统的实例,详细展示了如何将系统功能划分为不同的模块,以及模块间的交互方式。同时,介绍了Python中的包和模块概念,以及如何使用import语句导入和使用其他模块。
摘要由CSDN通过智能技术生成

一个复杂的Python程序一般是由团队合作开发完成的,这就要求团队成员各自负责部分Python程序的代码编写。例如在一个图书馆借书管理系统中,可能会把整个系统划分为图书管理、借书管理、读者管理、财务结算四个功能模块,系统的每个功能模块由团队的一个成员负责编写程序代码。这就是模块化编程的概念,模块化编程既有利于把复杂的功能分解为简单的功能,也有利于团队成员工作的划分,而且能够增加代码的共用性和可读性。

既然是团队合作编程,Python代码就不能写到一个文件中,至少每个团队成员负责的那块代码要单独建立一个代码文件。例如在前面的图书馆借书管理系统中至少要分成四个py文件,每个团队成员在自己负责的py文件中编写程序代码。

060828381f30e9242115a04f9211f5021d95f73d.jpeg?token=78651ae47f0d57c818bb6a42e7480132&s=7AA8346287C0694358FD81D30000C0B1图1 图书馆借书管理系统模块划分

模块化编程实际上是从逻辑上将代码划分为多个代码文件,这些代码文件独立完成程序的一些功能,但彼此也有交互。例如上图的borrow.py文件主要是完成读者借书、还书、借书费用的结算功能,它需要引入finance.py文件,使用该文件的结算功能完成借书费用的结算。

902397dda144ad346c4f72590dbb97f030ad851e.jpeg?token=8eb8866480c543be4429a27274203b6f&s=8D50EC1313704C2018F4A4DA0000C0B2图 2 图书馆借书管理系统代码划分

上图是使用eclipse开发环境构建的Python项目资源图,这个项目资源图对应图1所示的图书馆借书管理系统模块划分图。其中图书管理模块对应book.py文件,借书管理模块对应borrow.py文件,读者管理模块对应reader.py文件,财务结算模块对应finance.py文件。

在上图中“manager”是包名称,包类似于文件系统中的文件夹,它可以允许在一个包中容纳更多的代码文件,一个代码文件就是一个程序模块,包中还可以包含子包,形成一个树形结构。这种树形结构的组织方式,易于找到和使用相应的代码文件。

包“manager”下面是模块文件,同一包下的模块文件名称不能相同,不同包下的模块文件名称可以相同。从图中可以看出,“manager”包下面有book.py模块、borrow.py模块、reader.py模块、finance.py模块。

前面说到了borrow.py模块需要引用finance.py模块的结算函数。那么一个模块如何引用其它模块,并使用其它模块的函数呢?Python语言提供了import语句用于导入外部模块,它的语法如下:

import module1

import module2

……

import moduleN

也可以在一行内导入多个模块:

import module1, module2 …… moduleN

但是这样代码的可读性不如单行的导入语句。所以一般情况下,使用第一种导入方法。

Python解释器在执行到导入语句时,会根据import后面的模块路径来查找模块,如果找到了指定的模块就会加载,否则模块加载失败。当外部模块在当前模块顶部导入时,导入的模块作用域是全局;当外部模块在当前模块函数内部导入时,导入的模块作用域是局部的,仅限于函数内部使用。

在Python语言中代码的组织结构为包和模块,包类似于Java的Package,在一个包内可以包含子包;模块类似于Java的类文件,在模块中可以使用import语句导入其它模块,并可以使用其它模块中的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值