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

原创 2021年 12月 5日
标签: PYTHON

先打个广告:欢迎关注我的公众号,参与 文史大挑战 趣味题目。使用方法见 这篇文章

公众号:晚花行乐

正文开始:

开篇第一句: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')

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

如果您对本文有疑问或者寻求合作,欢迎 联系邮箱邮箱已到剪贴板

标签: PYTHON
给个免费的赞吧~

精彩评论

本站 是个人网站,采用 署名协议 CC-BY-NC 授权。
欢迎转载,请保留原文链接 https://www.lfhacks.com/tech/python-fluent-data-model/ ,且不得用于商业用途。