Fluent Python 是我这两个月一直在看的 Python 学习材料,这是一本很好的 Python 进阶书。

我的评论是:举例非常细致, 几乎全部是可以直接运行的 Python 代码, 而且是很简练的代码. 所谓的 hands-on approach .

将复杂话题时层层铺垫, 层层递进, 让抽象的概念最终变得具体. 比如 CH7 Decorators and Closures, CH19 class Property .

每章末尾给了很多参考书目.

想慢慢啃 Python chm 来学习一些较为深奥的概念,那很难,看这本书就可以。

LineItem 是什么东西?它是本书的一套例子程序,总共经历了八个阶段,横跨 CH19~21 三章。借助 LineItem,作者循序渐进地介绍了 property, descriptor, metaclass 这些较为深层的 Python 语言要素。

既然是比较深层的东西,就不是读一遍能够全部记住的。按我的风格,我又用表格把它们整理出来了,方便今后速查。唉,知乎这编辑器目前还不支持表格(更别说复杂表格了),我只好贴我的 Evernote 原始链接了。Fluent Python (FLPY) CH19-21 LineItem 进化路线www.evernote.com

【题外话一】在网页中查看 Evernote 网贴公网链接,如何才能养眼一些?

直接打开以上链接,看到我的表格了,但网页的左右两侧有大块留白,导致表格内容显得极其拥挤。即使你将窗口拉得再宽,表格宽度也不会增加,没天理。

肯定是 Evernote 给这个页面准备的 css 太小气。只能自己动手调教了。

用 Chrome F12 利器来检查网页元素,很快发现是某个 id="container" 元素被设死了宽度 840px 。

好,将这个无聊的 max-width: 840px 去除(去除前头的小钩即可)。这下表格终于按比例撑满整个窗口宽度了。

每次查看该网页都想那么调整一下 css, 该怎么做最方便呢?打开 F12, 找 id="container" 显然太费时了,最好是一句 JavaScript 就能搞定。暂时还不知这句 JavaScript 该怎么写,在这里发了问题 How to disable Evernote web view "max-width" with JavaScript?

嘿,没过一会儿就有人回答了,在 F12 console 中敲入以下语句,即可达成同等效果。

document.getElementById("container").maxWidth="none"

如果想再快一点,可以创建一个书签,URL 处敲入

javascript:document.getElementById("container").style.maxWidth="100%";void 0;

之后只要点击那个书签即可达成效果。

[2018-09-17] 慢着,今天突然发现,我给的 Evernote 网贴,在浏览器中显示出来,为什么 Python 代码前头的缩进消失了?没有缩进的话,Python 代码就彻底废了。唉,这又是 Evernote 6.13 闹的,我上个月说,我现在添加 Evernote 笔记只用 6.5.4 老版客户端,它在 6.5.4 里头显示是正常的,如下图:

但在 6.13 客户端中、或公网网页上显示就完蛋了,所有前导空格坍缩了——因为 Evernote 不知哪天起用了新的 HTML 输出引擎,这新引擎一堆的 bug 。唯一能够欣慰的是,目前这还仅仅是显示问题, 查看导出的 .enex 原文,空格还是在的。这个 bug,我在 Evernote 论坛上提了,两个月了还没反应。

另外记得,千万别在 6.13 中修改 6.5.4 中已显示正常的帖子,只要稍微一修改,



代码块就可能被新引擎重写,导致前导空格永久丢失。经观察,也不是所有代码块的前导空格都会丢失,哪些会、哪些不会、规律还没找到。



【题外话二】现在读 O'Reilly 的电子书,如何才能搞到 pdf 版本呢?

一个挺让人难过的消息是,大约 2018 年初,OReilly 网站上不再售卖 pdf 版本的电子书了,他转而要求用户购买订阅服务($399/year),订阅了,就可以在线看所有书本的电子版了,在线看的是经过网页排版的内容,并非 pdf。不妙之处是我们得 Internet 在线才行。

另一个似乎稍好一点的方案是,在 Amazon.com 上购买 Kindle ebook,这样可以先离线下载到本地,脱离网络也可阅读。这本书我买了 Kindle 版(2016-03-18 edition),这才发现 Kindle 上也并不能呈现原始的 pdf 排版效果,而是类似 epub 那样的流动排版。所谓原始 pdf,指的是很纸质版一模一样的排版格式。稍微可以欣慰一点的是,Kindle 阅读器提供了纸质版页码和正文内容的对应关系。意即,Kindle 阅读器会告诉你当前显示的内容对应着纸质书的哪个物理页。如下图蓝线标记处。

但我真的很喜欢原始的 pdf ,因为那可以让我用 Foxit Reader 在 pdf 上添加批注,那种批注是层叠上去的,一眼就能看到书本原文和我的批注,这是巨大的优势。

举个例子吧,我在 pdf 某页上的批注是这样的:

Kindle 那个阅读器,不管 PC 版、iPad 版,现在显然达不到这个效果。