《Fluent Python》 读书笔记:数据模型

2021-12-05

开篇第一句:python最好的品质是一致性。

一致性

一致性的含义就是多种含义的写法保持相似,让你不用记忆各种特征。

比如下面举的例子:

len()

函数,这种写法仍然是旧式的函数式写法,而不是时髦的面向对象的写法。但是下面会解释这种做法的优点。

len() 方法的思想

python 中执行 import this 可以看到一列文字,其中有一句:

practicality beats purity.

putiry,纯粹,就是严格执行规则,比如使用 obj.len() 这种面向对象的形式。

内置类型坚持使用 len() 形式的原因是:CPython会从C的struct体里直接读取对象的长度,而不需要调用其他任何内置的方法函数。

更本质的说,可以把 len() 看作一个一元运算符,看起来像函数,而又不是函数。

dunder-method

两个下划线开头的函数,名称变化的过程是:

  • underscore-underscore-method
  • under-under-method
  • double-under-method
  • d-under-method

纸牌例子

使用 named tuple 表示单张纸牌,named tuple用于构建只有属性没有方法的对象。

生成 纸牌点数序列的语句:

ranks = [str(n) for n in range(2,11)]+list('JQKA')

加号(+)前面一部分并不陌生,加号后面的写法我还是第一次见

list('JQKA')

这种生成单个字母序列的方法十分简单。

捐助本站

为了保证阅读体验,本站不安放广告。但是,租用服务器和编写文章需要个人资金和时间的投入。

如果您觉得文章对您有用,请考虑捐助小站(金额不限),以期待更多原创文章。捐助记录

本站是个人网站,若无特别说明,文章均为原创,并采用 署名协议 CC-BY-NC 授权。
欢迎转载,惟请保留原文链接,且不得用于商业用途。