《Fluent Python》第二版在 2022 年出版,最近,简体中文版《流畅的Python》也隆重上市了!
新书相比于旧版,有什么区别?我是新手,这本书适合我么?
送 10 本书),请不要错过哦~
这本书适合哪些读者?
深入剖析 Python 语言核心特性及底层逻辑”,你可能会感觉它深奥超纲。
- 想要更加熟练地掌握 Python
- 想要了解实用的编程技巧
- 想写出地道、优雅、高效的 Python 代码
- 想要掌握 Python 最新的语言特性
我在两年前写过一篇《如果只推荐一本 Python 书,我要 Pick 它!》,强烈推荐了第一版书籍,你可以从该文看到第一版主要内容的思维导图,以及我的推荐介绍。
在本文中,我主要面向已经了解过这本书的读者,回答大家最为关切的两个疑问:已经读过第一版了,是否还有必要读第二版呢?已经拥有了第一版书籍(不管实体书还是电子书),是否值得再买入第二版呢?
这本书新增了什么内容?
内容全面而新潮的特点。在第一版写作完成时,Python 3.5 版本还没发布,但是书中已包含了大量 3.5 版本的内容。
在随后 7、8 年时间里,Python 社区中发生了很多重大事件:
- 2015 年,PEP-484 被引入到 Python 3.5 版本,类型提示开始迅猛发展
- 2015 年以来,asyncio 引入了很多新特性,异步编程越来越好用
- 2015 年 TensorFlow 发布,2016 年 PyTorch 发布,2017 年 AlphaGo 击败人类世界围棋冠军。2022 年 ChatGPT 发布,各种 AI 模型和应用变得数不胜数
- 2018 年,Python 之父 Guido van Rossum 卸任“独裁者”,社区开始“指导委员会”治理模式
- 2020 年,Python 2 彻底停止维护
- 2023 年,PEP-684 被采纳,PEP-703 也有希望被采纳,GIL 将迎来重大变革……
英文第二版的上市时间比 Python 3.10.0 的发布时间早了好几个月,但是,书中的示例已基于 3.10 测试过,不仅有大量 3.10 版本的内容,还涉及一些 3.11 版本的变化。
- 3.5 版本:原生协程、矩阵乘法运算
- 3.6 版本:f-string 语法、collections.abc.Collection 抽象基类、异步生成器
- 3.7 版本:dict 插入有序、@dataclass 装饰器、contextlib 模块新增的几个函数、http.server 的多线程服务器
- 3.8 版本:仅限位置参数、异步的 REPL、@functools.cached_property、海象运算符(:=)
- 3.9 版本:
|
和|=
运算符、缓存装饰器 functools.cache、泛化类型提示 - 3.10 版本:模式匹配语法(match-case)、zip( 函数的新功能、带括号的上下文管理器
以上罗列的内容都是各个版本的新特性,表明了这本书紧跟着语言的发展趋势。
- 第 13 章对四种类型的划分讨论(鸭子类型、大鹅类型、静态鸭子类型、静态类型),不再是常规的类型分类角度(即动态类型、静态类型、强类型、弱类型),而是将类型提示以及抽象基类整合进来,作者画的图例让我感觉耳目一新
- 第 2.6 节不仅介绍了最新的模式匹配(match-case)语法,还用它重构了一个解释器 lis.py 代码。然后到了第 18.3 节,作者又进一步分析 lis.py 的整体机制,试图让我们感受到“地道的 Python 代码体现的编程美感”,通过介绍 Scheme 句法,让 Python 开发者感受“简单的语言设计哲学如何让 Scheme 成为大师级作品”
- 第 21.9.1 节使用 FastAPI 框架实现 Web 服务,舍弃了第一版中用到的 aiohttp,这为近几年已十分流行的 FastAPI 又助力推了一把
绝对的细节控和整理大师。在主体的文本外,那些密集的提示框、注释、延伸阅读和杂谈,在知识广度和深度上让人叹为观止。
其它的变化
在解答完大家最为关切的问题后,我还想补充几点。
其次是关于翻译,第二版修改了旧版翻译不到位或不准确的很多内容。比如,第一版将“Goose typing”翻译成“白鹅类型”,第二版修改成了“大鹅类型”;第一版将“Boolean Value of a Custom Type”错误译成了“自定义的布尔值”,第二版修正为“自定义类型的布尔值”;第一版将“When a List Is Not the Answer”译成“当列表不是首选时”,第二版修改成“当列表不适用时”……
最后很值得关注的是,作者在创作第二版时,为新书搭建了一个网站,里面已收录了多篇没有写到书中的文章,可以作为辅助材料。
bisect 处理有序序列、 集合与字典的内部实现、对象的弱引用,等等。
福利环节
10 本,有效期至 5 月 2 日 12 点。
抽奖送书(5本):给公众号【Python猫】发送数字“0428”,获取抽奖二维码后参与。
评论送书(5本):有两种评论方式,任选其一即可。方式1,从公众号里加猫哥为好友后,在朋友圈评论“你想获得赠书的理由”;方式2,将本文转发到你的社交圈之一(朋友圈或技术群或头条号或微博或其它交流平台),写上你对本书的评论/推荐语,然后发截图给我。