笔记
按章节来。先给结论,再讲原因。代码原样贴,解释写在代码块外面。
读 Fluent Python 第二版时的笔记。每章一页,代码能跑,测试能过。
不是译本。原文是英文,这里保留全部代码、术语和 API 名字,只把解释写成中文,并加上我自己的验证结果。
笔记
按章节来。先给结论,再讲原因。代码原样贴,解释写在代码块外面。
代码
每章有对应的可运行示例,放在仓库的 chapters/ 下。跟书上基本一致,去掉了 doctest 噪声。
测试
每个示例配 pytest 测试。自己写一遍测试,才知道对特殊方法的理解有没有错。
速查
特殊方法清单和运算符对照表单独成页,当查阅手册用。
特殊方法是给 Python 解释器调用的,不是给你调用的。你不写
my_object.__len__(),你写len(my_object)。
这一条想通了,第 1 章后面所有的 “白拿” 都能解释:为什么只写 __getitem__,deck[:3]、reversed(deck)、card in deck 就都能用了。