本书特点
受到其他语言的影响,你大概能猜到 Python 会支持正则表达式,然后就会去查阅文档。 但是如果你从来没见过元组拆包(tuple unpacking),也没听过描述符(descriptor)这个概念,那么估计你也不会特地去搜索它们,然后就永远失去了使用这些 Python 独有的特性的机会。这也是本书试图解决的一个问题。
这本书并不是一本完备的 Python 使用手册,而是会强调 Python 作为编程语言独有的特性,这些特性或者是只有 Python 才具备的,或者是在其他大众语言里很少具备的。
本书的非目标读者
如果你才刚刚开始学习 Python,本书的内容会显得有点“超纲”。比难懂更糟糕的是,如果在学习 Python 的过程中过早接触本书的内容,你可能会误以为所有的 Python 代码都应该利用特殊方法和元编程(metaprogramming)技巧。我们知道,不成熟的抽象和过早优化一样,都会坏事。
本书内容概览
- 第一部分,讲解 Python 的数据模型(data model),以及如何为了保证行为一致性而使用的特殊方法。
- 第二部分,对各种集合类型包括序列(sequence)、映射(mapping)和集合(set),以及字符串(str)、字节序列(bytes)的特性的讲解。
- 第三部分,讲解如何把函数作为一等对象(first-class object)来使用。
- 第四部分,讲解类的构建,包括引用(reference)、“可变性”、实例的生命周期、集合类型、抽象基类、多重继承、操作符重载。
- 第五部分,生成器(generator)、上下文管理器(context manager)、协程(coroutine)、yield from、并发性、面向事件的 I/O 。
- 第六部分,再来讲解类。包括如何创建带属性的类、梳理函数、方法和描述符的关系、类装饰器(class decorator)、元类(metaclass)。
参考
廖杰良 - 2018-11-12