(一)Python模块化编程简介

1 引言

众所周知,模块化编程具备很多优点,尤其在复杂项目上体现更为明显。Python模块化编程有助于开发者统筹兼顾和分工协作,并提升代码灵活性和可维护性,是编程开发者不可或缺的一项重要工具。

2 Python模块

在平时Python编程中,我们所保存的以.py为后缀的代码文件(如hello.py),称为源文件(source file)。开始学习Python编程时,我们通常将项目所有代码放在一个源文件中进行编译实现,但是随着深入学习和项目变得复杂起来时,这种方法将无法满足你快速找到你定义的函数(functions)或类(classes)的具体位置,这时模块化编程思想就有了用武之地。

我们可以创建一个Python模块(如module.py),其中module称为模块的名称。当然,Python模块在本质上就是一个源文件(source file),同样是以.py作为后缀保存。Python模块通常包含的是项目需要实现的某个或某几个功能的源代码(source code),当你的项目需要实现包含在此模块中的功能时,运用import module则可导入此模块到项目中。

3 Python包

Python包就是把多个Python模块集合到一起而形成的一个目录(directory),如下图所示。

上图所示定义了一个名为animals的Python包,包含了5个Python模块:cat, cow, dog, horse, sheep。此外,还包含了一个名为_init_.py的特殊文件,我们通常称此文件为包初始化文件(package initialization file)。_init_.py文件作用如下:1)告知Python system此目录中包含有一个Python包;2)初始化该Python包;3)使导入该Python包时更容易。

【注】:Python3.3版本以后,Python包中并非必须要包含初始化文件(此类包称之为命名空间包(namespace package)),但习惯上仍然选择包含初始化文件(此类包称之为常规包(regular package))。

调用Python包中模块和前面类似,如import animals.cat。

创建Python包可以更好地组织协调复杂项目,能够将有关联的Python模块进行集中,甚至能够在Python包中继续定义Python包(称为嵌套包(nested packages))。

4 运用Python模块和包来组织一个项目

Python模块和包的应用不仅仅能将你项目的全部代码划分到各个模块和包中,而且它能够反映出项目的逻辑结构。例如,当你需要创建一个网页应用用来存储和报告考试成绩,则可以将这个项目划分为两个主要部分:1)网页接口,用来与用户交互使用;2)后端,操作数据库存储信息的内部逻辑并产生报告结果。如下图所示:

对于网页接口,可由以下四个模块构成:

  • 提供用户验证部分,包括注册、登录、登出;
  • 提供浏览和录入考试成绩网页接口;
  • 提供生成成绩报告单网页接口。
  • 提供API,允许其它系统根据需求获取考试成绩结果。

对于后端,可由以下三个模块构成:

  • 数据库;
  • 成绩报告单生成器;
  • 邮件发送成绩报告单。

对于整个项目,可以划分为两个主要的Python包,分别命名为:web和backend,

  • web package(包含网页接口四个模块);
  • backend package(包含后端三个模块)。

虽然上述内容是一个虚构项目(与实际网页应用开发有别),但它很好的展示了模块化编程的思想,把整个项目划分成了独立的模块和包,有助于我们对模块化编程的理解。

5 小结

模块化编程的应用,有利于我们管理项目中需要变更或重建的模块,无需过多修改项目代码,提升项目的可维护性和灵活性;有利于提升我们编程的效率,避免重复造车轮的尴尬;有利于优化我们的项目代码结构,彰显项目的逻辑性。

未完待续……

本文章属于原创作品,欢迎大家转载分享,禁止修改文章的内容。尊重原创,转载请注明来自:躬耕南阳  https://www.cnblogs.com/yangmi511/

原文地址:https://www.cnblogs.com/yangmi511/p/12221802.html

时间: 2024-11-05 04:02:51

(一)Python模块化编程简介的相关文章

Python面向对象编程——简介

Python面向对象编程--简介 编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 . 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式, 对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式. 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式. 两种最重要的编程范式分别是面向

PYTHON SOCKET编程简介

原文地址: PYTHON SOCKET编程详细介绍 Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 下面讲的是Socket模块功能 1.Socket 类型 套接字格式: socket(family,type[,protocal]) 使用给定的地址族.套接字类型.协议编号(默认为0)来创建套接字. socket类型 描述 socke

Python函数式编程简介

函数 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 函数式编程(Functional Programming) 函数式编程是一种抽象程度很高的编程范式.纯粹的函数式编程语言编写的函数没有变量的,因此任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用的.而非纯粹的函数(允许使用变量的),由于函数内部的变量状态不确定,

python学习之路-第七天-python面向对象编程简介

面向对象编程 在python中,同样是类和对象作为重要的组成部分. 而且在python中基本数据类型如int都是有封装类的,都有自己的方法,应该是和java里面的Integer类似吧 类包括域和方法:域也就是类或对象中的变量,方法就是类里面声明的函数 self关键字: 相当于java中的this,下面是个例子: #!/usr/bin/python # Filename: method.py class Person: def sayHi(self): print 'Hello, how are

Python多线程编程简介

创建线程 格式如下 threading.Thread(group=None, target=None, name=None, args=(), kwargs={}) 这个构造器必须用关键字传参调用 - group 线程组 - target 执行方法 - name 线程名字 - args target执行的元组参数 - kwargs target执行的字典参数 Thread对象函数 函数 描述 start() 开始线程的执行 run() 定义线程的功能的函数(一般会被子类重写) join(time

Python基础-第七天-面向对象编程进阶和Socket编程简介

本篇内容: 1.面向对象编程进阶-静态方法 2.面向对象编程进阶-类方法 3.面向对象编程进阶-属性方法 4.面向对象编程进阶-特殊成员(内置方法) 5.面向对象编程进阶-反射 6.异常处理.断言 7.Socket编程简介 一.面向对象编程进阶-静态方法 1.静态方法的实现 通过@staticmethod装饰器可以把其装饰的方法变为一个静态方法: 变成静态方法后,形参中可以不用写self了.如果写了self,默认是不会把对象本身传递给self,需要手动传递: class Dog(object):

Python核心编程基础教程之Python运算符、运算符优先级、表达式简介--20150717

Python核心编程基础教程之Python运算符.运算符优先级.表达式简介 1.Python运算符与表达式: (1)认识Pyhton运算符1:什么是运算符 在Python运算中,有时候我们需要对一个或者多个数字或者一个或者多个字符串进行运算操作,*,+ (2)认识Pyhton运算符2:运算符有哪些以及运算符的使用方法 + :加 - :减 * :乘 / :除 ** :幂 < :小于 > :大于 != :不等于 // :求相除的整数部分 % :求相除的余数部分 & :按位与 | :按位或

【python游戏编程之旅】第一篇---初识pygame

本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 参考书籍:<python游戏编程入门> 一.pygame简介 Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发.允许你在 Python 程序中创建功能丰富的游戏和多媒体程序,Pygame 是一个高可移植性的模块可以支持多个操作系统.用它来开发小游戏非常适合. 可以去http://www.pygame.org/hifi.html 下载并安装使用pygame. 二

【C语言探索之旅】 第二部分第一课:模块化编程

内容简介 1.课程大纲 2.第二部分第一课: 模块化编程 3.第二部分第二课预告: 进击的指针,C语言王牌 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量