Python网络编程
经过20年来的严谨创新,Python在引人了诸如上下文管理器(contextmanager)、生成器( generator)以及推导式(comprehension)等特性的同时,仍然保持了其语法及概念一贯的简洁。Python终于开始大放异彩,这对于Python社区来说,分外激动人心。
在有些人眼中,Python是一门只能被GoogIe和NASA这种一流编程机构冒险使用的精品语言,但事实恰好相反,Python正在被广泛使用。它不仅应用于传统的编程任务,如Web应用程序设计;也被大量“被赶鸭子上架的程序员”--科学家、数据专员以及工程师所采用,他们编程并非出于兴趣,而是必须靠编程才能在自己的领域中更进一步。我认为,一门简单的编程语言为业余编程人员提供的便利是不容小觑的。
Python 3
自2008年问世以来,Python3一直在不断修订和精简,以期承担起Pyton2的角色。如今,Python3迎来了面世以来的第二个5年,已然成为了Python社区内进行创新的首选平台。
Python3提供给网络程序员的编程平台几乎在方方面面都有所改进,无论是基础性的(如将Unicode文本设为Python3的默认字符串类型 ),还是特有的(如对SSL的正确支持、内置的用于异步编程的asyncio框架,以及对标准库中大大小小的模块的细微调整)。这是一个显著的进步。要知道,
Python2就已经是程序员在现代互联网环境中用来快速高效工作的最佳语言之一了。本书的目的并非提供从Python2迁移到Python 3的全面指南。本书不会讲述如何给老版本的print语句添加括号,也不会介绍如何对导人的标准库模块进行重命名,更不会讲解如何对Python2中从字节字符串到Unicode字符串的自动转换(这一转换通常基于粗略的猜测)这一危险特性引人的缺陷代码进行深度调试。关于如何从Python2迁移到Python3,以及如何仔细编写能够同时支持这两个平台的
代码,已经有很多优质的资源提供了相应的指导。本书的重点在于网络编程,并且在所有示例脚本及代码片段中都使用Python 3来阐释。这些例子的目的是帮助读者全面了解使用这门语言提供的工具构建网络客户端、网络服务器以及网络工具的最佳实践。读者可以将这些例子与第2版中各章使用的脚本进行比较,以此来学习从Python 2到Python 3的迁移。两个版本的代码都可以从https:/github.com/brandon-rhodes/fopnp/tree/m/获取。这要感谢Apress出版社,让我们能够从网络上获取源代码。接下来各个章节的目的就是介绍如何最大化地使用Python3提供的功能来解决现代网络编程的问题。