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 风格的对象
主要讲类和对象的相关问题:
classmethod
和staticmethod
的使用。- 私有属性和受保护属性。
ch10 序列的修改、散列和切片
没怎么看。
ch11 接口:从协议到抽象基类
没怎么看。
ch12 继承的优缺点
没怎么看。
ch13 正确的重载运算符
没怎么看,主要讲运算符的重载,应该是和数据模型中定义的函数有关。
ch14 可迭代的对象、迭代器、生成器
主要讲迭代器和生成器,没怎么看。
ch15 上下文管理器和 else 块
主要讲如何定义能够被 with
接受的上下文管理器。
ch16-ch18 协程
没怎么看。
ch19 动态属性和特性
主要讲什么是 python 属性,什么是 python 特性。主要关注:
- 如何将类方法当做类属性一样访问,通过特性的装饰器。
- 能够和特性装饰器配合使用的 setter 和 getter。
ch20 属性描述符
即实现了一些特定协议的类,主要用来控制数据访问。
ch21 类元编程
主要讲了元类,元类即生产类的类,类比起来就是生产机器的机器。主要关注:
- 元类的概念
- 导入时和运行时