本章开头辨析了“并发”、“并行”概念的差异。并发是指一次处理多件事 – 靠分配时间片轮换。并行是指一次做多件事 – 靠多核心处理器。 asyncio在python 3.4中被纳入标准库。asyncio大量使用yiel…
标签:python
流畅的Python-Fluent Python读书笔记-17-使用future处理并发
本书出版之时曾被读者批评翻译问题,最受批评的地方就是此章,future翻译成了“期物”,算是一个新名词的尝试。但是读者并不买账。后面的版本,出版社干脆把不少地方的“期物”改回原文 – future。 个人看法是:不影响理解即可,…
流畅的Python-Fluent Python读书笔记-16-协程
这章讨论协程。这个话题现在看来是越来越重要了。这章内容,值得拓展讨论一番。 并发模型有很多种,有一本书专门讨论了这个话题:参见《七周七并发模型》。此书有些枯燥无味,不过还是大体解释清楚了不少问题。 计算机专业的人都知道,操作系统提供了“进程…
流畅的Python-Fluent Python读书笔记-15-上下文管理器和else块
这章讨论上下文管理器问题以及一些控制结构中附加的else语句事项。 与其它常见语言不同,Python设计了一个特殊的else控制流程。除了标准的if/else之外,它给for/while/try控制块都增加了else控制流程。它的执行行为是…
流畅的Python-Fluent Python读书笔记-14-可迭代的对象、迭代器和生成器
这章内容开始转向控制流程,探讨可迭代的对象、迭代器和生成器。 迭代器、生成器是近些年程序语言中比较流行的概念。它可以看成一类问题的抽象。C++的STL中,就有迭代器理念。Java中也有迭代器。日益兴旺的JavaScript在ES6版本中,也…
流畅的Python-Fluent Python读书笔记-13-正确重载操作符
这章讲的是运算符重载。运算符重载不是什么新玩意儿,老早就有。但是在C++时代,名声不佳,因为滥用的情况比较多,而且语法也不怎么方便。所谓运算符重载,就是你定义操作符和它的运算规则,适度使用,可以有效的提升代码可读性。 比如,字符串相加:st…
流畅的Python-Fluent Python读书笔记-12-继承的优缺点
这章探讨继承和子类化问题。 首先,不要子类化内置的类型。因为内置类型有自己的操作规则,子类化内置类型,修改已有方法,很容易破坏正常的操作逻辑。这是个坑。 Python少见的支持了多重继承。其它常见语言只有C++支持多重继承,别的语言都选择了…
流畅的Python-Fluent Python读书笔记-11-接口:从协议到抽象基类
这章讨论“接口”问题。折腾面向对象那些年,接口被大书特书过。特别是Java。但是Python选择的是完全不同的路线。它选择简洁和实用,并不追求纯粹。 Python更推崇所谓“鸭子类型”的做法:只要你叫的像鸭子,走路像鸭子,那你就是鸭子 …
流畅的Python-Fluent Python读书笔记-10-序列的修改、散列和切片
这章以一个vector类为案例,主要研究如何设计实现序列操作,修改,散列,切片,以及属性的自定义操作。个人觉得这章内容更适合设计类库的开发者。普通应用可能会部分用到里面的技术,比如自定义序列切片操作。所以参考下,知道个大概即可,真正用到的时…
流畅的Python-Fluent Python读书笔记-09-符合Python风格的对象
这章延续第1章内容,探讨如何实现很多Python类型中常见的特殊方法。这些特殊方法我觉得可以看成一种特别的“钩子”。Python内部设计的远比PHP/JavaScript语言严谨、精巧、精细,它定义了对象的各种各样的运算方式,这些方式在内部…