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/

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

  1. Python模块化编程与装饰器

    Python的模块化编程 我们首先以一个例子来介绍模块化编程的应用场景,有这样一个名为requirements.py的python3文件,其中两个函数的作用是分别以不同的顺序来打印一个字符串: # r ...

  2. PYTHON SOCKET编程简介

    原文地址: PYTHON SOCKET编程详细介绍   Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 Soc ...

  3. Python函数式编程简介

    参考原文 廖雪峰Python函数式编程 函数 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程 ...

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

    面向对象编程 在python中,同样是类和对象作为重要的组成部分. 而且在python中基本数据类型如int都是有封装类的,都有自己的方法,应该是和java里面的Integer类似吧 类包括域和方法: ...

  5. Python模块化编程

    目录 模块化 自定义模块 模块的内置属性 导入模块 安装第三方模块 查看模块的属性和方法 模块化 在Python中,一个.py文件就称之为一个模块(Module),为了避免模块名冲突,Python又引 ...

  6. Python 面向对象编程详解

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  7. 爬虫逆向基础,理解 JavaScript 模块化编程 webpack

    关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 简介 在分析一些站点的 JavaScript 代码时,比较简单的代码,函数通常都是一个一个的,例 ...

  8. 【python游戏编程之旅】第七篇---pygame中的冲突检测技术

    本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 上一个博客我们一起学习了pygame中的Sprite模块和如何加载动画:http://www.cnblogs ...

  9. Python核心编程-描述符

    python中,什么描述符.描述符就是实现了"__get__"."__set__"或"__delete__" 方法中至少一个的对象.什么是非 ...

随机推荐

  1. css常用元素通用样式表

    @charset "utf-8";html,body,a,h1,h2,h3,h4,h5,h6,p,a,b,i,em,s,u,dl,dt,dd,ul,ol,li,strong,spa ...

  2. 兄弟连 企业shell笔试题 16-31

    企业实践题16:企业案例:写网络服务独立进程模式下rsync的系统启动脚本 例如:/etc/init.d/rsyncd{start|stop|restart} .要求:1.要使用系统函数库技巧.2.要 ...

  3. Django使用 djcelery时报ImportError: No module named south.db错误

    这时候可能是安装的Django-celery.celery的版本过低引起的,可以到pycharm查看推荐的版本,把版本更换到的推荐的版本就解决了

  4. 关键两步+6个要点,让Windows应用程序享有K8S的绝佳优势

    本文来自Rancher Labs 前  言 实际上,没有一个迁移路径能够适用于将所有传统应用程序迁移到云.这些应用程序通常在物理机.虚拟机或本地.虽然一般情况下是重新设计应用程序架构以适用云原生服务, ...

  5. Windwos日志分析

    Windows日志分析工具 查看系统日志方法: 在“开始”菜单上,依次指向“所有程序”.“管理工具”,然后单击“事件查看器” 按 "Window+R",输入 ”eventvwr.m ...

  6. ID生成器之——别人家的方案and自家的方案

    “叮咚,叮咚……”,微信提示音一声接一声,声音是那么的频繁,有妖气,待俺去看一看. 这天刚吃完午饭,打开微信,发现我们的技术讨论组里有 100 多条未读消息,心想,是不是系统出问题了?怎么消息那么频繁 ...

  7. Javascript 基础学习(七)常用内置对象

    Array 定义 数组也是一个对象,是一个用来存储数据的对象.和Object类似,但是它的存储效率比普通对象要高.数组中保存的内容我们称为元素.数组使用索引(index)来操作元素.索引指由0开始的整 ...

  8. linux系统中运行node进程,无法杀死进程

    events.js:72 throw er; // Unhandled 'error' event ^Error: listen EADDRINUSE at errnoException (net.j ...

  9. Docker基础(1) 原理篇

    Docker是什么 Docker的构成 Docker的分层和写时拷贝策略 Docker与主流虚拟机的区别 Docker镜像与容器的关系 镜像的变更管理 Docker是什么 Docker是一个开源的应用 ...

  10. Git安装与配置,以及pycharm提交代码到github

    1.下载git,安装 下载好后直接下一步到底,安装成功(选择组件页面,可以勾选上控制台窗口字体选项,如下图) 2.配置Git信息 1.打开窗口中,输入:git --version 查看已安装的git版 ...