Skip to content

Rough reading of Fluid Python

这篇文章主要记录对于《流畅的python》这本书的粗略阅读,主要包括每一章讲了什么以及感兴趣的知识点。以下分章节展开简述各个章节中介绍的主要内容,记录一些我注意到的点。

参考资料

首先列出一些学习 python 的参考资料,了解语言特性,以下足矣:

ch1 python 数据模型

主要介绍了 python 数据模型,主要讲到了数据模型中内置方法实现的作用,更多的数据模型可以参考语言参考手册的数据模型的这一个章节。

ch2 序列构成的数组

主要介绍了 python 中一些内置的序列库,需要注意的有:

  • 拆包
  • 列表推导
  • 可变对象与不可变对象的使用

ch3 字典与集合

主要讲到字典与集合的使用,以及其中元素缺失的时候可以采取的一些方法。

ch4 文本和字节序列

处理文本和编码问题,没怎么看。

ch5 一等函数

主要讲把函数视为一等公民,即函数也能够进行等同于其他基础数据类型一样的操作,比如说将一个函数赋值给别人,将函数作为返回值返回。

需要注意的点有:

  • 用户能够将类定义为可调用的类型
  • *** 符号的拆包
  • 函数注解只起到注解作用

ch6 使用一等函数实现设计模式

没怎么看。

ch7 函数装饰器和闭包

提到了装饰器和闭包的概念,函数装饰器实际上是拓展了一个函数。有以下这些点值得关注:

  • 函数装饰器的定义和使用:函数装饰器就是一个方法,接受一个函数,返回一个函数
  • 如何定义接受参数的函数装饰器
  • 闭包和变量作用域的概念

ch8 对象引用、可变性和垃圾回收

主要讲解对象的可变性等等,还有对象的浅复制问题。主要关注点有:

  • 函数的引用传参
  • 浅拷贝和深拷贝

需要注意的是,利用 l1 = l2 进行对象的赋值只是为对象取了一个别名,而利用 l1 = list(l2) 这种方式两个对象已经存在在不同的位置上,但是列表中的内容是浅靠背的, l1 中的内容都是作为指针指向 l2 中内容的地址的。

ch9 符合 python 风格的对象

主要讲类和对象的相关问题:

  • classmethodstaticmethod 的使用。
  • 私有属性和受保护属性。

ch10 序列的修改、散列和切片

没怎么看。

ch11 接口:从协议到抽象基类

没怎么看。

ch12 继承的优缺点

没怎么看。

ch13 正确的重载运算符

没怎么看,主要讲运算符的重载,应该是和数据模型中定义的函数有关。

ch14 可迭代的对象、迭代器、生成器

主要讲迭代器和生成器,没怎么看。

ch15 上下文管理器和 else 块

主要讲如何定义能够被 with 接受的上下文管理器。

ch16-ch18 协程

没怎么看。

ch19 动态属性和特性

主要讲什么是 python 属性,什么是 python 特性。主要关注:

  • 如何将类方法当做类属性一样访问,通过特性的装饰器。
  • 能够和特性装饰器配合使用的 setter 和 getter。

ch20 属性描述符

即实现了一些特定协议的类,主要用来控制数据访问。

ch21 类元编程

主要讲了元类,元类即生产类的类,类比起来就是生产机器的机器。主要关注:

  • 元类的概念
  • 导入时和运行时