Chapter 16 - 协程 字典为动词 “to yield” 给出了两个释义:产出和让步。对于 Python 生成器中的 yield 来说,这两个含义都成立。yield item 这行代码会产出一个值,提供给 next(...) 的调用方;此外,还会作出让步,暂停执行生成器,让调用方继续工作,直到需要使用另一个值时再调用 next()。调用方会从生成器中拉取值。 yield 关键字甚至还可以不接收或传出数据。不管数据如何流动 2019-09-05 Fluent Python Python
Chapter 15 - 上下文管理器和 else 块 15.1 先做这个,再做那个:if 语句之外的 else 块for/else、while/else 和 try/else 的语义关系紧密,不过与 if/else 差别很大: for: 仅当 for 循环运行完毕时(即 for 循环没有被 break 语句中止)才运行 else 块。 while:仅当 while 循环因为条件为假值而退出时(即 while 循环没有被 break 语句中止)才运行 2019-08-25 Fluent Python Python
Chapter 14 - 可迭代的对象、迭代器和生成器 14.1 Sentence 类第1版:单词序列我们要实现一个 Sentence 类,以此打开探索可迭代对象的旅程。我们向这个类的构造方法传入包含一些文本的字符串,然后可以逐个单词迭代。 import re import reprlib RE_WORD = re.compile('\w+') class Sentence: def __init__(self, te 2019-08-25 Fluent Python Python
思维导图与高效学习 相信我们在生活中会经常使用思维导图来进行规划,总结,事项整理等,思维导图由 Tony Buzan 创建,是一种风靡全球的工具。可用于生活,和工作中;他能够辅助我们思考,发散,并将思维和逻辑具象化和形式化;本文是《思维导图与高效学习术》课程的总结,所以,本文也会尝试使用思维导图来进行课程知识的总结和归纳。 思维导图的特点 C:从一张纸的中心开始思考 R:放射状往外有层次逻辑扩散(先放后收) O: 2019-08-17 Effective Way Effective Mind Map
Redis 使用技巧 - Pipelining 请求/相应以及 RTTRedis 是基于 CS 模型的 TCP 服务器,所以我们每次操作都会遵循如下步骤完成: 客户端将查询请求发送给服务器,服务器中套接字中读取客户端的请求,客户端会等待服务器的相应,而这个过程通常是阻塞的。 服务器处理完成后,将响应返回给客户端。 假设客户端需要向服务器发送四条请求,那么请求和响应顺序应该是这样的: Client: INCR X Server: 1 Cli 2019-08-11 Redis Redis
Chapter 13 - 正确的重载运算符 13.1 运算符重载基础Python 在重载运算符上施加了一些限制,做好了灵活性、可用性和安全性的平衡: 不能重载内置类型的运算符 不能新建运算符,只能重载现有的 某些运算符不能重载:is,and,or 和 not 13.2 一元运算符支持一元运算符很简单,只需实现相应的特殊方法。这些特殊方法只有一个参数,self。然后,使用符合所在类的逻辑实现。不过,要遵守运算符的一个基本规则:始终返回一个 2019-08-11 Fluent Python Python
Go 语言圣经 - 6. 方法 6.1. 方法声明在函数声明时,在其名字之前放上一个变量,即是一个方法。这个附加的参数会将该函数附加到这种类型上,即相当于为这种类型定义了一个独占的方法。 package geometry import "math" type Point struct{ X, Y float64 } // traditional function func Dista 2019-08-07 Go 语言圣经 Go
Go 语言圣经 - 5. 函数 5.1. 函数声明函数声明包括函数名、形式参数列表、返回值列表(可省略)以及函数体。 func name(parameter-list) (result-list) { body } 返回值也可以像形式参数一样被命名。在这种情况下,每个返回值被声明成一个局部变量,并根据该返回值的类型,将其初始化为该类型的零值。 如果一个函数在声明时,包含返回值列表,该函数必须以 re 2019-08-05 Go 语言圣经 Go
Go 语言圣经 - 4. 复合数据类型 4.1. 数组数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,因此在Go语言中很少直接使用数组。 默认情况下,数组的每个元素都被初始化为元素类型对应的零值: var a = [3]int // array of 3 intergers with 0 value 我们也可以使用数组字面值语法用一组值来初始化数组: var q [3]int 2019-07-31 Go 语言圣经 Go
Go 语言圣经 - 3. 基础数据类型 3.1. 整形Go 语言同时提供了有符号和无符号类型的整数运算。这里有 int8、int16、int32 和 int64 四种截然不同大小的有符号整数类型,分别对应 8、16、32、64bit 大小的有符号整数,与此对应的是 uint8、uint16、uint32 和 uint64 四种无符号整数类型。 这里还有两种一般对应特定 CPU 平台机器字大小的有符号和无符号整数 int 和 uint,其 2019-07-24 Go 语言圣经 Go