写点什么

豆瓣评分 9.4!Python 程序员必读的《流畅的 Python》,放这里了!

  • 2024-08-15
    湖南
  • 本文字数:1927 字

    阅读完需:约 6 分钟

Python 官方教程的开头是这样写的:“Python 是一门既容易上手又强大的编程语言。””这句话本身并无大碍,但需要注意的是,正因为它既好学又好用,所以很多 Python 程序员只用到了其强大功能的一小部分,只需要几个小时,经验丰富的程序员就能学会用 Python 写出实用的程序。


然而随着这最初高产的几个小时变成数周甚至数月,在那些先入为主的编程语言的影响下,开发者们会慢慢地写出带着“口音”的 Python 代码。即便 Python 是你的初恋,也难逃此命运。因为在学校里,亦或是那些入门书上,教授者往往会有意避免只跟语言本身相关的特性。


今天给小伙伴们分享的这份手册并不是一本完备的 Python 使用手册,而是会强调 Python 作为编程语言独有的特性,这些特性或者是只有 Python 才具备的,或者是在其他大众语言里很少见的。Python 语言核心以及它的一些库会是这份手册的重点。

限于文章篇幅原因,只能以截图的形式展示出来,有需要的小伙伴 点击这里凭本文截图即可获取!

第一部分 序幕

第一部分只有单独的一章,讲解的是 Python 的数据模型(datamodel),以及如何为了保证行为一致性而使用特殊方法(比如_repr_),毕竟 Python 的一致性是出了名的。其实整本书几乎都是在讲解 Python 的数据模型,第 1 章算是一个概览。

第 1 章 Python 数据模型

第二部分 数据结构

第二部分包含了各种集合类型:序列(sequence)、映射(mapping)和集合(set),另外还提及了字符串(str)和字节序列(bytes)的区分。第二部分的目标是帮助读者回忆起 Python 内置的类库,顺带解释这些类库的一些不太直观的地方。具体的例子有 Python3 如何在我们观察不到的地方对 dict 的键重新排序,或者是排序有区域(locale)依赖的字符串时的注意事项。


为了达到本部分的目标,有些地方的讲解会比较大而全,像序列类型和映射类型的变种就是这样:有时则会写得很深入,比方说我会对 dict 和 set 底层的散列表进行深层次的讨论。

第 2 章 序列构成的数组

第 3 章 字典和集合

第 4 章 文本和字节序列

第三部分 把函数视作对象

如何把函数作为一等对象(first-order object)来使用。第三部分首先会解释前面这句话是什么意思,然后话题延伸到这个概念对那些被广泛使用的设计模型的影响,最后读者会看到如何利用闭包(closure)的概念来实现函数装饰器(function decorator)。这一部分的话题还包括 Python 的这些基本概念:可调用(callable)、函数属性(function attribute)、内省(introspection)、参数注解(parameter annotation)和 Python3 里新出现的 nonlocal 声明。

第 5 章 一等函数

第 6 章 使用一等函数实现设计模式

第 7 章 函数装饰器和闭包

第四部分 面向对象惯用法

到了这里,书的重点转移到了类的构建上面。虽然在第二部分里的例子里就有类声明(class declaration)的出现,但是第四部分会呈现更多的类。和任何面向对象语言一样,Python 还有些自己的特性,这些特性可能并不会出现在你我学习基于类的编程的语言中。这一部分的章节解释了引用(reference)的原理、“可变性”的概念、实例的生命周期、如何构建自定义的集合类型和 ABC、多重继承该怎么理顺、什么时候应该使用操作符重载及其方法。

第 8 章 对象引用、可变性和垃圾回收

第 9 章 符合 Python 风格的对象

第 10 章 序列的修改、散列和切片

第 11 章 接口:从协议到抽象基类

第 12 章 继承的优缺点

第 13 章 正确重载运算符

第五部分 控制流程

Python 中有些结构和库不再满足于诸如条件判断、循环和子程序(subroutine)之类的顺序控制流程,第五部分的笔墨会集中在这些构造和库上。我们会从生成器(generator)起步,然后话题会转移到上下文管理器(context manager)和协程(coroutine),其中会涵盖新增的功能强大但又不容易理解的 yield from 语法。


这一部分以并发性和面向事件的 I/0 来结尾,其中跟并发性相关的是 collections.futures 这个很新的包,它借助 futures 包把线程和进程的概念给封装了起来;而跟面向事件 I/0 相关的则是 asyncio,它的背后是基于协程和 yield from 的 futures 包。

第 14 章 可迭代的对象、送代器和生成器

第 15 章 上下文管理器和 else 块

第 16 章 协程

第 17 章 使用期物处理并发

第 18 章 使用 asyncio 包处理并发

第六部分 元编程

第六部分的开头会讲到如何动态创建带属性的类,用以处理诸如 JSON 这类半结构化的数据。然后会从大家已经熟悉的特性(property)机制入手,用描述符从底层来解释 Python 对象属性的存取。同时,函数、方法和描述符的关系也会被梳理一遍。第六部分会从头至尾地实现一个字段验证器,在这个过程中我们会遇到一些微妙的问题,然后在最后一章中就自然引出像类装饰器(class decorator)和元类(meta class)这些高级的概念。

第 19 章 动态属性和特性

第 20 章 属性描述符

第 21 章 类元编程

限于文章篇幅原因,就展示到这里了,有需要的小伙伴 点击这里凭本文截图即可获取!

用户头像

欢迎关注,一起学习,一起交流,一起进步 2020-06-14 加入

公众号:做梦都在改BUG

评论

发布
暂无评论
豆瓣评分9.4!Python程序员必读的《流畅的Python》,放这里了!_Python_我再BUG界嘎嘎乱杀_InfoQ写作社区