原标题:《流畅的 Python》到底好在哪?

《Fluent Python》是我最近一个月的地铁通勤读物,它的优秀不仅超出了我的预期,而且还让我开始思考这样一个问题:一本好书,或者再具体一点,一本技术类的好书到底好在哪里?

这个问题还真不简单,就像我们大多数人都有能力甄别一部电影是好是坏,但并不是所有人都能洋洋洒洒写出一篇臧否影评来一样,一本书我们读完都觉得好,但要说出个子午卯酉好在什么地方,往往又不知从何说起。读完《Fluent Python》后这样的感受尤其深刻,这无疑是一本极好的书,但若要向别人推荐,对方问我“好在哪里”,该如何回答?好在内容详实覆盖面广?那PEP和官方文档岂不更好?好在深入浅出?《Head First XXX》似乎又相形见绌。好在写作技巧?好像又太虚无缥缈。这些因素或许都有,但单一一点拎出来又难以尽意。我也只能抛砖引玉,说一说这本书有哪些好处。

结构良好,详略得当

这本书易读的一大原因,就是他采用了良好的组织方式与叙述方法,它的每一章都遵循这样的基本结构:1. 简要说明这一章的主题——2. 提出问题—— 3.示例代码与详细讲解 ——(2-3循环)——总结——延伸阅读——soap box(关于某个问题的发散讨论)这个结构非常适合学习,让将近800页的体量显得没有那么让人望而生畏,而且对于不同层次的读者都相当友好。

善于概括,有洞见

这是我读这本书时一个非常深刻的感受,也是它能在一众介绍语言特性的书籍中脱颖而出的关键。作者往往能一语中的,让一些本来晦涩的、需要反复记忆的点变得十分容易理解。试举几例:

在谈到 __new__这个magic方法时,

The special method that actually constructs an instance is __new__: it's a class method

(but gets special treatment, so the @classmethod decorator is not used)

在介绍deor时提到bound method和function,

Methods are implemented as non-overriding deors.

这些简洁的概括比比皆是。另外,对于Python语言设计中一些缺陷也能非常及时的指出,比如,为了尽量不引入新关键字,通过复用现有关键字来表达新特性(比如yield from在协程中的应用、else在for循环以及try catch中的应用等)。这些有的像是考前准备的“小抄”,简单有效;有的像是偈语,留下思考的空间。

旁征博引,信手拈来

这是最见功力的一点,看得出作者对书中涉及的每个特性的过去、现状和未来都有非常深入的了解,无论是前人的著述、邮件列表的讨论、stackoverflow的问答,用典详实恰到好处,真正做到了深入浅出。

Easy for beginners, practical for professionals and exciting for hackers.

作者这样评价对Python语言的喜爱,同样我觉得这本书也配得上这样的赞誉。

推荐语

如果让我写一段读这本书的理由,那或许是这样的:

这是一本介绍Python语言特性的书,涵盖了OO、控制流(并发、context manager、协程)、元编程等Python语言中相对晦涩的进阶特性(支持3.4版本,兼顾2.7),但作者并不想将受众局限在框架开发人员或者热衷挖掘奇技淫巧的language lawyers,相反,这是一本写给所有Python使用者的书,在介绍这些特性的过程中,作者用简洁而且有洞见的讲解让不同层次的开发者都能通过对这些特性的学习,更好地理解自己的程序,从而写出更优秀的代码。

作者 | Garfieldog

责任编辑:

流程的python-《流畅的 Python》到底好在哪?相关推荐

  1. 用python怎么赚钱-python怎么挣钱

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 6年python,期间写了各种奇葩爬虫,挣各种奇葩的钱,写这篇文章总结下 ...

  2. 流畅的Python学习

    流畅的Python笔记 流畅的Python笔记 1 Python数据模型 2 数据结构 2.1 内置序列类型 2.2 列表推导与生成器表达式 2.3 元组 2.4 切片 2.5 序列对象上的+与* 2 ...

  3. 5月书讯:流畅的Python,终于等到你!

    4月书讯中奖名单: 只爱艾薇儿<Unity游戏设计与实现:南梦宫一线程序员的开发实例(修订版)> xy落青 <Angular权威教程> AresCarry<Angular ...

  4. python课程价格-python辅导价格是多少?主要流程是什么?

    在CS这个专业当中,python是一种程序设计语言,有着自身优点.实际使用过程中,展现出强大的功能,一般广泛应用于爬虫.数据分析.机器学习.深度学习.AI等方向,作为一门OOP的编程语言,有着简单又好 ...

  5. 《流畅的python》学习笔记

    <流畅的python>学习笔记(一) 起步 第一章 python数据模型 __len__方法 起步 从事软件开发14年半,前12年一直用C/C++写服务器端程序,主要涉及作业.流程调度和通 ...

  6. 《流畅的Python第二版》读书笔记——函数作为一等对象

    引言 这是<流畅的Python第二版>抢先版的读书笔记.Python版本暂时用的是python3.10.为了使开发更简单.快捷,本文使用了JupyterLab. 函数是Python的一等( ...

  7. 豆瓣评分9.4!评价最高的Python书籍《流畅的Python》

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! "Python是一门既容易上手又强大的编程语言."这句话本身并 ...

  8. Python诞生30年,《流畅的Python》作者要来中国了

    说到 Python,相信很多 Python 开发者都读过<流畅的Python>这本书,此书为 PSF 研究员.知名 PyCon 演讲者 Luciano Ramalho 的心血之作,兼顾了 ...

  9. 《流畅的Python》一副扑克牌中的难点

    1.现在在看<流畅的Python>这本书,看了三页就发现,这本书果然不是让新手来入门的,一些很常见的知识点能被这个作者玩出花来, 唉,我就在想,下面要分析的这些的代码,就算我费劲巴拉的看懂 ...

最新文章

  1. java 方法是否需要带参数的情况
  2. 来自22岁的大学生的体检报告:x光显示双肺纹理增多
  3. 无向图强联通分量-洛谷 P2860 [USACO06JAN]冗余路径Redundant Paths
  4. vue 前端商城框架_前端工程师要掌握几个Vue框架
  5. 演练 聚美Y品商品分类导航 1002 html
  6. jtopo绘图帧数与cpu使用率
  7. linux下cmake使用教程,超详细的cmake教程
  8. win7分区软件_全自动分区装系统PE纯净无广告
  9. FaceBoxes: A CPU Real-time Face Detector with High Accuracy
  10. asp版 vbscript RSA公钥加密 / 私钥解密 / 私钥签名 / 公钥验签(支持中文)分段加密解密
  11. 戴尔笔记本电脑的计算机配置在哪,戴尔g3怎么查电脑配置
  12. 什么是迁移学习?什么时候使用迁移学习?
  13. 学学Gnuplot(常用命令及参数)
  14. nginx cache 总结
  15. 2022护眼产品展,视力康复展,山东国际眼健康展会,护眼仪展
  16. php网页设计课程设计dreamweaver8_Dreamweaver8+PHP动态网站开发从入门到精通(附光盘)...
  17. 任天堂官网在哪里修改服务器,任天堂服务器设置
  18. yum clean all的作用
  19. 学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
  20. Netgear R6220刷潘多拉盒子后的配置,提高网速

热门文章

  1. Error: Could not access the Package Manager. Is the system running?
  2. Eclipse使用新手教程
  3. NSTimer与Run loop Modes
  4. 给char*一个名份
  5. Boosting(提升方法)之XGBoost
  6. [译文]Domain Driven Design Reference(四)—— 柔性设计
  7. Spinner弹出框遮挡住显示框的解决办法
  8. linq语句复杂查询和分开查询的性能对比
  9. 如何用Curl 来post xml 数据
  10. 老李分享:Mac快捷键