
Fluent Python
无夜之凛冬
这个作者很懒,什么都没留下…
展开
-
第1章 Python数据模型
1.1 一摞Python风格的纸牌 首先构建一个纸牌类。 rom collections import namedtuple Card=namedtuple('Card',['rank','suit']) class FrenchDeck: ranks=[str(n) for n in range(2,11)]+list('JQKA') suits='spades diamond...原创 2019-02-05 23:43:41 · 136 阅读 · 0 评论 -
第2章 序列构成的数组(上)
2.1 内置序列类型概览 容器序列:list、tuple和collections.deque这些序列能存放不同类型的数据。 扁平序列:str、bytes、bytearray、memoryview和array.array,这类序列只能容纳一种类型。 容器序列存放的是它们所包含的任意类型的对象的引用,扁平序列里存放的是值而不是引用。扁平序列其实是一段连续的内存空间。由此可见扁平序列其实更加紧凑,但其内...原创 2019-02-07 22:33:07 · 133 阅读 · 0 评论 -
第2章 序列构成的数组(下)
2.6 序列的增量赋值 +=背后的特殊方法是__iadd__(用于“就地加法”)。但是如果一个类未实现此方法,Python会退一步调用__add__。 在可变序列和不可变序列上的作用如下: >>> l=[1,2,3] >>> id(l) 1554484273544 >>> l*=2 >>> l [1, 2, 3, 1, 2, ...原创 2019-02-17 16:54:22 · 126 阅读 · 0 评论 -
第4章 文本和字节序列(上)
4.1 字符问题 Unicode标准把字符的标识和具体的字节表述进行如下区分: 字符的标识,即码位,是0~1114111的数字(十进制),在Unicode标准中以4—6个十六进制数标识,而且前缀加“U+”。如字母A的码位是U+0041。 字符的具体表述取决于所用的编码。编码是在码位和字节序列之间转换时使用的算法。在UTF-8编码中,A(U+0041)的码位编码成单个字节\x41 将码位转换成字...原创 2019-02-28 19:17:58 · 293 阅读 · 0 评论 -
第3章 字典和集合(上)
散列表是字典类型性能出众的根本原因。 3.1 泛映射类型 collections.abc模块中有Mapping和MutableMapping这两个抽象基类,它们的作用是为dict何其他类似的类型定义形式接口。 标准库中的所有映射类型都是利用dict来实现的,因此它们有个共同的限制,即只有可散列(hashable)的数据类型才能用作这些映射里的键。 可散列类型:如果一个对象是可散列的(hashab...原创 2019-02-19 22:46:27 · 126 阅读 · 0 评论 -
第三章 字典和集合(下)
3.6 子类化UserDict UserDict并不是dict的子类,但是UserDict有一个叫做data的属性,是dict的实例,这个属性实际上是UserDict最终存储数据的地方。 参看如下示例: rom collections import UserDict class StrKeyDict(UserDict): def __missing__(self, key): ...原创 2019-02-20 22:43:59 · 208 阅读 · 0 评论