前段时间,我偶然看到了一条推特:

《流畅的Python》一书的作者发布了一条激动人心的消息:他正在写作第二版!

如果要票选最佳的 Python 进阶类书目,这本书肯定会是得票率最高的书籍之一。

如果你读过它,肯定也会认为它值得推荐;如果你没有,那请往下阅读,看我的介绍能否打动你把它列为必读书目吧~

这本书的英文名是《Fluent Python》,在 2015 年 8 月出版。两年后,国内的图灵教育出品了译本,出版时间是 2017 年 5 月,获得豆瓣 9.4 高分。(图书翻译/出版真是个漫长的过程啊)

作者 Luciano Ramalho 是个巴西人、资深的 Python 程序员/演讲者、PSF(Python软件基金会)成员。书籍的技术审校与推荐人囊括了圈内的一众大咖。

此书一出,大受圈内好评,各国出版社纷纷引进版权,目前至少已有 9 种语言版本(来数数你认识几种?):

PS:图片出自@fluentpython官推,简体中文版最薄,巧合占据C位。根据图灵教育统计,简体中文版销量超过4万册,预计在2020年能超越英文版的销量。

那么,这本书到底写了些什么呢?又有哪些特别之处呢?

全书内容充实,除去前言、附录和术语表这些内容,共分为六个部分 21 章节。我将核心章节内容制作了一份思维导图:

以上是主要章节的思维导图,图中的数字是折叠起来的分支数。

下面给大家看看部分的细节图:

从章节上可以看出,这本书主要面向中高级的开发者。它基本不涉及入门级内容,反而聚焦在数据模型、数据结构、函数对象、面向对象、控制流程与元编程等话题上。

打开书本第一章,作者用寥寥十几行 Python 代码,就徒手实现了一副扑克牌:

import collections

Card = collections.namedtuple('Card', ['rank', 'suit'])

class FrenchDeck:

ranks = [str(n) for n in range(2, 11)] + list('JQKA')

suits = 'spades diamonds clubs hearts'.split()

def __init__(self):

self._cards = [Card(rank, suit) for suit in self.suits for rank in self.ranks]

def __len__(self):

return len(self._cards)

def __getitem__(self, position):

return self._cards[position]

然后,直接就点出了全书最关注的核心话题:由各种特殊方法构成的数据模型。

特殊方法(special method)是xxx() 这种以前后双下划线命名的东西,通常又被称为魔术方法(magic method)和双下方法(dunder method),是 Python 独有的设计。

数据模型(data model)无疑是 Python 语言的关键核心,是得以形成所谓 Python 风格(pythonic)的基石。Python 中一切皆对象,而数据模型则是这些对象的接口规范,正是因为它,Python 得以获得极强的行为一致性。

《流畅的Python》以数据模型为始,定下了全文的风格基调,即关注 Python 对象的构造以及语言内部的特性细节,目的是让读者写出更地道、简洁高效、可读易用的代码。

《流畅的Python》作者与中文版合影

接着,它介绍了 Python 中一些内置类型的特性(序列类型、映射类型、文本和字节类型),介绍作为特殊对象的函数以及一般性对象的用法,介绍控制流程(迭代器、生成器、上下文管理器、协程和并发编程),最后深入到素有黑魔法之称的元编程(描述符和元类)。

全书 600 多页,洋洋洒洒,旁征博引,内容充实到让人应接不暇,让人时不时就产生一种“又学到了新知识”的感觉,以及一种“哦我想进一步学习 xxx”的求知欲望。

很多读过书的同学会有一个同感:它的“延伸阅读/杂谈”并不是闲笔,反而有些内容比正文更精彩,作者在此展示了他丰富的知识面(官方文档、社区典故、语法演进、文章视频、开源项目、语言差异等等),每一章都值得挖掘阅读。目前没有任何一本 Python 书籍能在这方面与它匹敌。

《流畅的Python》第一版基于当时最新的 Python 3.4。这些年来,Python 不断丰富自己,既正式宣告了 Python 2 版本的终结,又快速地演进到了最新的 3.9 版本。

但是,由于作者关注的是 Python 的核心概念,探讨的是基本不会变化的特性,因此倒不必太担忧内容过时,它仍是一本非常推荐购买和阅读参考的书籍。

我非常关心它的第二版,但是也知道,写作需要时间,英文出版、中文翻译和中文出版也都需要时间,所以我们就一起静候佳音吧。

python高分书籍推荐_如果只能推荐一本 Python 书,我一定 Pick 它相关推荐

  1. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  2. python高分书籍推荐_如果只推荐一本 Python 书,我要 Pick 它!

    今年二月初,我偶然看到了一条推特: <流畅的Python>一书的作者发布了一条激动人心的消息:他正在写作第二版! 如果要票选最佳的 Python 进阶类书目,这本书肯定会是得票率最高的书籍 ...

  3. 推荐3本Python高分书籍,居家旅行必备神器!

    前不久Python创始人Guido老爹,说要让 Python 成为更快的语言,承诺在明年的 Python 3.11 中要将其速度提高 2 倍,以解决 Python 与 C++ 等其他编程语言相比在速度 ...

  4. python大神推荐_大神推荐!!!高评分书籍轻松带你入门Python

    上次讲到了初学者阶段必看的书籍.今天给大家继续讲讲 进阶者阶段 当你对Python有了一定的了解,并在生活或者工作中使用过一段时间,那么你就可以考虑进阶相关的书籍,请看下面这3本: <Pytho ...

  5. 少儿学python书籍推荐_儿童节,我们从零开始——Python入门资源推荐

    原创 2017-06-01 玄魂工作室 玄魂工作室 今天是六一儿童节,首先祝所有的小朋友身体健康,能永远生活在一个没有战争,没有压迫的世界里,永远快乐. 上一篇文章,很多人都对Python的各种书籍感 ...

  6. python金融编程入门_【量化小讲堂- Python、pandas技巧系列】如何快速上手使用Python进行金融数据分析...

    如何快速上手使用Python进行金融数据分析 引言: 本系列帖子"量化小讲堂",通过实际案例教初学者使用python.pandas进行金融数据处理,希望能对大家有帮助. [必读文章 ...

  7. python是一门面向_如何系统地自学一门Python 语言

    零基础情况下,学一门语言充实下自己,Python,简洁.优美.容易使用,是一个很好的选择.那么如何系统地自学Python呢? 有的人非常想学好Python,一方面被琐事纠缠,一直没能动手,另一方面,担 ...

  8. 编程小白学python知乎周刊_在知乎上学 Python - 入门篇

    写在前面 本文对知乎上关于Python入门方面的问答.文章.专栏做了一定的收集和整理,希望对各位Python学习者能有帮助,至少可以节省大家一点时间. 这一篇主要针对的是零基础或初学Python,包括 ...

  9. python anaconda下载包_用Anaconda安装本地python包

    Anaconda确实带来了很多方便,但是之前也过多的依赖了conda自带的一键下载python包的功能.这不,这几天突然要用FastFM这个包,无奈conda里没有,于是只能从github下载下来,实 ...

最新文章

  1. 浅析网站SEO优化用户体验值包括什么后续又该如何进行提升?
  2. 国内linux内核镜像仓库,国内较快的maven仓库镜像
  3. 收藏 | 3D目标检测综述:从数据集到2D和3D方法
  4. python输出返回值给文件_python-输入输出及文件
  5. 四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比
  6. Wooden Signs Gym - 101128E (DP)
  7. 2007.05.07 不再如此堕落
  8. Eclipse问题解决
  9. oracle 索引个数限制,oracle索引详解
  10. 什么是大数据?65页PPT+50分钟视频讲解,小白也能看懂
  11. 三菱f800变频器 频率设定_三菱F800变频器调试参数总结 -
  12. win10计算机怎么拨号上网,win10系统怎么设置拨号上网 设置拨号上网的方法
  13. Protocol buffer配置-生成jar包和java文件
  14. 购买重疾险是不是都要先去体检?千万不要!
  15. 《Learning Enriched Features for Real Image Restoration and Enhancement》
  16. 备份数据库 并发送到邮箱
  17. (投影:Projector)Unity Projector 投影器原理以及优化
  18. 老板要如何去激励自己的员工?
  19. 神经网络架构搜索(NAS)综述
  20. mbedtls | 09 - 数字签名算法的配置与使用(RSA数字签名算法、ECDSA数字签名算法)

热门文章

  1. 领域分类的问题_别人的问题领域
  2. 美食类短视频怎么做?几个小方法来帮忙,简单很好学
  3. Notion,这应该是程序员最后一款笔记软件
  4. 某验通杀js版,流程各个验证码那对应的js分析,你确定不进来看看(无感)?
  5. java中抓阄_有种取名是让宝宝“抓阄”选,宝妈打开纸条后笑了:你自己选的...
  6. StoneDB完成华为鲲鹏国产处理器适配认证!
  7. 飞秒激光脉冲的产生过程
  8. matlab学习之旅1——钢琴音频
  9. SCI回复评审意见模板
  10. Win2008下IIS7不显验证码解决方案