Skip to content

Latest commit

 

History

History
137 lines (79 loc) · 9 KB

File metadata and controls

137 lines (79 loc) · 9 KB

零、序言

模块化编程是一种组织程序源代码的方法。通过将代码组织到模块(Python 源文件)和包(模块集合)中,然后将这些模块和包导入到程序中,您可以保持程序的逻辑组织,并将潜在问题降至最低。

随着程序的增长和更改,您通常需要重写或扩展代码的某些部分。模块化编程技术有助于管理这些更改,最大限度地减少副作用,并使代码处于受控状态。

在使用模块化编程技术时,您将学习使用模块和包的一些常见模式,包括编程的分而治之方法、抽象和封装的使用以及编写可扩展模块的思想。

模块化编程技术也是一种很好的共享代码的方法,可以让其他人使用,也可以在其他程序中重用代码。通过使用 GitHub 和 Python 包索引等流行工具,您将学习如何发布代码,以及如何使用其他人编写的代码。

将所有这些技术放在一起,您将学习如何应用“模块化思维”来创建更好的程序。您将看到如何使用模块来处理大型程序中的复杂性和变化,以及模块化编程如何真正是良好编程技术的基础。

在本书的结尾,您将非常了解 Python 中的模块和包是如何工作的,以及如何使用它们创建可以与他人共享的高质量和健壮的软件。

这本书涵盖的内容

第 1 章介绍了模块化编程,介绍了如何使用 Python 模块和包来帮助组织程序,为什么使用模块化技术很重要,以及模块化编程如何帮助您处理正在进行的编程过程。

第 2 章编写您的第一个模块化程序,介绍了分而治之编程方法,并将此技术应用于基于模块化编程原理构建库存控制系统的过程。

第 3 章使用模块和包介绍了使用 Python 进行模块化编程的具体细节,包括嵌套包、包和模块初始化技术、相对导入、选择导入的内容以及如何处理循环引用。

第 4 章使用模块进行实际编程使用图表生成库的实现,展示模块化技术如何帮助以最佳方式处理不断变化的需求。

第 5 章处理模块模式介绍了处理模块和包的一些标准模式,包括分治技术、抽象、封装、包装,以及如何使用动态导入、插件和挂钩编写可扩展模块。

第 6 章创建可重用模块展示了如何设计和创建旨在与他人共享的模块和包。

第 7 章高级模块技术介绍了 Python 中模块化编程的一些更独特的方面,包括可选和本地导入、调整模块搜索路径、“需要注意的问题”、如何使用模块和包快速开发应用程序,使用包全局、包配置和包数据文件。

第 8 章测试和部署模块探讨了单元测试的概念,如何准备发布您的模块和包,如何上传和发布您的作品,以及如何利用他人编写的模块和包。

第 9 章 ALE T1 席,AUT2 模块化编程作为良好编程技术的基础,To3T3,展示了模块化技术如何帮助处理正在进行的编程过程,通过处理变化和管理复杂性,以及模块化编程技术如何帮助您成为一个更有效的程序员。

这本书你需要什么

本书中的示例只需一台运行任何最新版本 Python 的计算机即可。虽然这些示例都使用 Python3,但它们可以很容易地适应 Python2,只需进行一些更改。

这本书是给谁的

本书面向希望使用模块化编程技术来创建高质量和组织良好的程序的初级到中级 Python 程序员。虽然读者必须了解 Python 的基础知识,但不需要预先了解模块化编程。

公约

在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“这一行程序将保存在磁盘上的文件中,通常命名为类似于hello.py的文件。”

代码块设置如下:

def init():
    global _stats
    _stats = {}

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

[default]
exten => s,1,Dial(Zap/1|30)
exten => s,2,Voicemail(u100)
exten => s,102,Voicemail(b100)
exten => i,1,Voicemail(s0)

任何命令行输入或输出的编写方式如下:

# cp /usr/src/asterisk-addons/configs/cdr_mysql.conf.sample
 /etc/asterisk/cdr_mysql.conf

新术语重要词语以粗体显示。您在屏幕上看到的文字(例如,在菜单或对话框中)显示在文本中,如下所示:“单击下一个按钮将移动到下一个屏幕。”

警告或重要注释显示在这样的框中。

提示

提示和技巧如下所示。

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。

要向我们发送总体反馈,只需发送电子邮件<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,并在邮件主题中提及该书的标题。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您的帐户下载本书的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

您可以通过以下步骤下载代码文件:

  1. 使用您的电子邮件地址和密码登录或注册我们的网站。
  2. 将鼠标指针悬停在顶部的支架选项卡上。
  3. 点击代码下载&勘误表
  4. 搜索框中输入图书名称。
  5. 选择要下载代码文件的书籍。
  6. 从您购买本书的下拉菜单中选择。
  7. 点击代码下载

您也可以通过点击 Packt 出版网站上该书网页上的代码文件按钮下载代码文件。在搜索框中输入图书名称即可访问此页面。请注意,您需要登录到您的 Packt 帐户。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/ Python 模块化编程。我们在上还提供了丰富的书籍和视频目录中的其他代码包 https://github.com/PacktPublishing/ 。看看他们!

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/submit-errata ,选择您的书籍,点击勘误表提交表链接,输入您勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上载到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请转至https://www.packtpub.com/books/content/support 并在搜索字段中输入图书名称。所需信息将出现在勘误表部分下。

盗版

在互联网上盗版版权材料是所有媒体都面临的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。

请致电<[copyright@packtpub.com](mailto:copyright@packtpub.com)>与我们联系,并提供可疑盗版材料的链接。

我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有任何问题,可以通过<[questions@packtpub.com](mailto:questions@packtpub.com)>与我们联系,我们将尽力解决该问题。