《Thinking in Python》

查看原文 HN 讨论

文章摘要

这是 Bruce Eckel 的新书《Thinking in Python》的官方站点。副标题是「Fluency, Types, and Design(流利度、类型与设计)」。书在网上完全免费阅读,同时提供 PDF、EPUB 以及专为电子墨水阅读器优化的 EPUB 三种下载格式,书中示例与练习答案托管在 GitHub 上。版权信息为 © 2026 Bruce Eckel,采用 CC BY-NC-ND 4.0 许可——可自由在线阅读,未经许可不得复制发行。

Bruce Eckel 这个名字对很多程序员来说意味着一段编程教育史:他是《Thinking in Java》和《Thinking in C++》的作者,前者的第一版出版于四分之一个世纪之前,是无数人入门 Java 的书。这本 Python 版本是他多年前动笔、后来一度放弃的项目,最近用 Claude 把旧材料整理清洗后完成。书明确以 Python 3.15 及以后版本为目标。

全书目录规模相当可观,共 47 章,分为五大部分(外加第 1 章引言):

第一部分·基础:Tour(导览)、容器、控制流、函数、模块与包、类、静态类型、类属性、清理(Cleanup)。

第二部分·技术:测试、把数据类当作类型、模式匹配、装饰器、上下文管理器、推导式、元编程、性能、并发。

第三部分·模式:重新思考对象、模式的概念、数据传输对象、迭代器、单例、模板方法、代理(Surrogate)、工厂、函数对象、改变接口、观察者、状态机、多重分派、访问者、组合与解释器、享元、备忘录、模式重构、模拟、模式目录。

第四部分·函数式编程:基础、工具箱、错误处理、保障(Assurance)。

第五部分·效应(Effects):效应管理、生成器、无状态、无状态的实践。

从目录结构就能看出这本书的野心和它与普通 Python 入门书的差别:设计模式部分占了整整 20 章(这是 Eckel 一贯的风格,与《Thinking in Java》一脉相承),而最后两部分——函数式编程和效应管理——在 Python 图书里相当少见。

作者在书中关于 AI 使用的自述被 HN 用户完整引用出来,是这本书最受关注的部分之一。他坦承:「我知道有些人不喜欢 AI。没有它,这本书不会存在。这本书是免费的,所以如果 AI 让你困扰的程度超过了这本书可能给你带来的好处,请忽略它。」他接着说,用 Claude 让他意识到自己过去在写书时做过多少妥协:他会冒出一个好想法(比如自动把带注释的输出交织进代码清单里),但要么实现不了,要么觉得太难就放弃了。「有了 AI,我可以探索并且经常能实现每一个突发奇想,从看似简单的插入一个新章节,到像那套注释输出系统那样令人望而生畏的事情。结果比我过去做出来的任何东西都好得多。我会一直改下去,直到把每一个我能想到的地方都调好为止。」

HN 评论精华

这条帖子拿到 305 分、约 46 条评论。讨论量相对不大,主要围绕三条线:对 Bruce Eckel 这个名字的集体怀旧、这本书「用 AI 写成」引发的价值判断、以及少数人真正读了内容后给出的技术评价。