巨蟒石!
从 20 世纪 80 年代末的最早版本到现在的版本,它以同样的理念发展:提供一种考虑可读性和生产率的多模式编程语言。
人们过去将 Python 视为另一种脚本语言,并且认为用它来构建大型系统是不对的。然而,多年来,由于一些先驱公司的努力,Python 显然可以用于构建几乎任何类型的系统。
事实上,许多来自另一种语言的开发人员都被 Python 迷住了,并将它作为他们的首选语言。
如果你买了这本书,你可能会意识到这一点,因此没有必要再进一步说服你该语言的优点。
本书旨在表达多年来使用 Python 构建各种应用程序的经验,从几小时内完成的小型系统脚本到几十名开发人员在几年内编写的大型应用程序。
它描述了开发人员在使用 Python 时使用的最佳实践。
这本书涵盖了一些主题,这些主题并不关注语言本身,而是关注用于使用它的工具和技术。
换句话说,本书描述了高级 Python 开发人员每天的工作方式。
第一章Python 的现状展示了 Python 语言及其社区的现状。它展示了 Python 是如何不断变化的,为什么它在变化,以及为什么这些事实对于任何想称自己为 Python 专业人士的人来说都很重要。本章还介绍了 Python 中最流行和规范的工作方式—流行的生产力工具和约定,这些工具和约定现在已成为事实上的标准。
第 2 章,语法最佳实践–在类级别之下,以高级方式介绍迭代器、生成器、描述符等。本文还介绍了有关 Python 惯用语和内部 CPython 类型实现的有用说明,以及它们的计算复杂性,作为展示惯用语的基本原理。
第 3 章语法最佳实践–高于类级别解释了语法最佳实践,但重点放在了类级别之上。它涵盖了 Python 中更高级的面向对象概念和机制。为了理解本章的最后一节,需要这些知识,这一节介绍了 Python 元编程的不同方法。
第四章选择好名字涉及选择好名字。它是 PEP8 的扩展,提供了命名最佳实践,但也提供了设计好 API 的技巧。
第 5 章编写了一个包,介绍了如何创建 Python 包,以及使用哪些工具将其正确分发到官方 Python 包索引或任何其他包存储库中。有关软件包的信息还包括对允许您从 Python 源代码创建独立可执行文件的工具的简要回顾。
第 6 章部署代码主要针对 Python web 开发人员和后端工程师,因为它涉及代码部署。它解释了如何构建 Python 应用程序以便轻松地部署到远程服务器,以及可以使用哪些工具来自动化该过程。本章与第 5 章编写包相吻合,因为它展示了如何使用包和私有包存储库来优化应用程序部署。
第 7 章,其他语言的 Python 扩展,解释了为什么为 Python 编写 C 扩展有时可能是一个好的解决方案。它还表明,只要使用适当的工具,就不会像看上去那么困难。
第 8 章管理代码对如何管理项目代码库给出了一些见解,并解释了如何建立各种持续开发过程。
第 9 章记录您的项目,涵盖了文档,并提供了关于技术写作和 Python 项目应如何记录的技巧。
第 10 章测试驱动开发解释了测试驱动开发的基本原理以及此开发方法中可以使用的工具。
第 11 章优化——一般原则和分析技术解释了优化。它提供了分析技术和优化策略指南。
第 12 章、优化——一些强大的技术扩展了第 11 章、优化——一般原则和评测技术,为 Python 程序中经常出现的性能问题提供了一些通用的解决方案。
第 13 章、并发介绍了 Python 中并发的广泛主题。它解释了什么是并发,何时可能需要编写并发应用程序,以及 Python 程序员实现并发的主要方法。
第 14 章有用的设计模式,在书中总结了一组有用的设计模式和 Python 的示例实现。
这本书是为在任何 Python3 可用的操作系统下工作的开发人员编写的。
这不是一本适合初学者的书,所以我假设您已经在您的环境中安装了 Python,或者知道如何安装它。无论如何,本书考虑到了一个事实,即并非每个人都需要完全了解 Python 的最新特性或官方推荐的工具。这就是为什么第一章简要介绍了目前被视为专业 Python 开发人员标准工具的常用工具(如虚拟环境和 pip)。
本书是为希望进一步掌握 Python 的 Python 开发人员编写的。我所说的开发人员主要是专业人员,也就是以 Python 编写软件为生的程序员。这是因为它主要关注在 Python 中创建高性能、可靠和可维护软件的关键工具和实践。
这并不意味着业余爱好者不会发现任何有趣的东西。这本书对于任何有兴趣学习 Python 高级概念的人来说都是非常棒的。任何具备基本 Python 技能的人都应该能够理解本书的内容,尽管这可能需要经验较少的程序员付出一些额外的努力。对于那些仍然落后并继续在 2.7 版或更高版本中使用 Python 的人来说,这也应该是对 Python 3.5 的一个很好的介绍。
最后,阅读这本书最能受益的群体是 web 开发人员和后端工程师。这是因为本文中的两个主题在他们的工作领域中特别重要:可靠的代码部署和并发性。
在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。
文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“使用str.encode(encoding, errors)方法,该方法使用注册的编码解码器对字符串进行编码。”
代码块设置如下:
[print("hello world")
print "goodbye python2"当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:
cdef long long fibonacci_cc(unsigned int n) nogil:
if n < 2:
return n
else:
return fibonacci_cc(n - 1) + fibonacci_cc(n - 2)任何命令行输入或输出的编写方式如下:
$ pip show pip
---
Metadata-Version: 2.0
Name: pip
Version: 7.1.2
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: python-virtualenv@groups.google.com
License: MIT
Location: /usr/lib/python2.7/site-packages
Requires:新术语和重要词语以粗体显示。您在屏幕上看到的文字(例如,在菜单或对话框中)显示在文本中,如下所示:“单击下一个按钮将移动到下一个屏幕。”
警告或重要注释显示在这样的框中。
提示和技巧如下所示。
我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。
要向我们发送总体反馈,只需发送电子邮件<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,并在邮件主题中提及该书的标题。
如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors。
既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。
您可以从您的帐户下载本书的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。
您可以通过以下步骤下载代码文件:
- 使用您的电子邮件地址和密码登录或注册我们的网站。
- 将鼠标指针悬停在顶部的支架选项卡上。
- 点击代码下载&勘误表。
- 在搜索框中输入图书名称。
- 选择要下载代码文件的书籍。
- 从您购买本书的下拉菜单中选择。
- 点击代码下载。
您也可以通过点击 Packt 出版网站上该书网页上的代码文件按钮下载代码文件。在搜索框中输入图书名称即可访问此页面。请注意,您需要登录到您的 Packt 帐户。
下载文件后,请确保使用以下最新版本解压或解压缩文件夹:
- WinRAR/7-Zip for Windows
- 适用于 Mac 的 Zipeg/iZip/UnRarX
- 适用于 Linux 的 7-Zip/PeaZip
该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Expert-Python-Programming_Second-Edition 。我们在上还提供了丰富的书籍和视频目录中的其他代码包 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)>与我们联系,我们将尽力解决该问题。