文章分类 -  流畅的Python 读书笔记

1
摘要:第二版: 阅读全文
posted @ 2017-08-08 10:28 Vincen_shen 阅读(176) 评论(0) 推荐(0) 编辑
摘要:动态属性和特性 在Python中数据的属性和处理数据的方法统称为 属性(attribute), 其实方法只是可调用的属性。 动态创建属性是一种元编程,框架的作者经常这么做。 19.1 使用动态属性转换数据 示例19-1 阅读全文
posted @ 2017-07-28 15:38 Vincen_shen 阅读(187) 评论(0) 推荐(0) 编辑
摘要:使用asyncio处理并发 1、asyncio是一个异步IO非阻塞框架 2、async/await是Python提供的异步编程API,而asyncio只是一个利用 async/await API进行异步编程的框架 3、并发:一次处理多件事 4、并行:一次做多件事 5、asyncio使用事件循环驱动的 阅读全文
posted @ 2017-07-28 15:02 Vincen_shen 阅读(489) 评论(0) 推荐(0) 编辑
摘要:使用无期并发 1、concurrent.future模块: ThreadPoolExcutor, ProcessPoolExcutor 2、应该使用协程,而不是多线程 3、可以使用Pypy来实现CPU密集型的工作 17.1 示例:网络下载的三种风格 示例1: flags.py顺序下载 示例2: fl 阅读全文
posted @ 2017-07-28 14:55 Vincen_shen 阅读(184) 评论(0) 推荐(0) 编辑
摘要:协程 1、生成器用于生成供迭代的数据,协程是数据的消费者 2、to yield: 产出,让步 3、yield流程控制工具,使用它可以实现协作式多任务;协程可以把控制器让步给中心调度程序,从而激活其他的协程。 4、yield from实现协作式多线程 5、在Python3.5中 async替代asyn 阅读全文
posted @ 2017-07-28 14:52 Vincen_shen 阅读(177) 评论(0) 推荐(0) 编辑
摘要:上下文管理器和else块 在使用Python编程中,可以会经常碰到这种情况:有一个特殊的语句块,在执行这个语句块之前需要先执行一些准备动作;当语句块执行完成后,需要继续执行一些收尾动作。 例如:当需要操作文件或数据库的时候,首先需要获取文件句柄或者数据库连接对象,当执行完相应的操作后,需要执行释放文 阅读全文
posted @ 2017-07-27 23:20 Vincen_shen 阅读(108) 评论(0) 推荐(0) 编辑
摘要:可迭代的对象、迭代器和生成器 1、生成器实现了迭代器的接口,所以生成器也是迭代器 2、迭代器从集合中取出元素,生成器用于“凭空”生成元素 3、yield from 合并生成器,创建通道 4、Python中所有集合都可以迭代 14.1 Sentence类第一版:单词序列 示例14-1 序列可以迭代的原 阅读全文
posted @ 2017-07-27 23:19 Vincen_shen 阅读(106) 评论(0) 推荐(0) 编辑
摘要:正确重载运算符 Python对运算符重载做了一些限制: 1、不能重载内置类型的运算符 2、不能新建运算符,只能重载现有的 3、某些运算符不能重载——is, and, or, not 阅读全文
posted @ 2017-07-27 22:08 Vincen_shen 阅读(84) 评论(0) 推荐(0) 编辑
摘要:继承的优缺点 我们推出继承的初衷是让新手顺利使用只有专家才能设计出的框架。 —— Alan Kay 直接子类化内置类型(如dict, list或str)容易出错,因为内置类型的方法通常会忽略用户覆盖的方法。不要子类化内置类型,用户自己定义的类应该继承collections模块中的类,例如UserDi 阅读全文
posted @ 2017-07-27 21:48 Vincen_shen 阅读(113) 评论(0) 推荐(0) 编辑
摘要:接口:从协议到抽象基类 猴子补丁:在运行时修改类或模块而不修改源码 对于Python来说: 协议 == 接口 ABC = Abstract Base Class 抽象类表示接口 —— Bjarne C++之父 抽象基类、描述符和元类都是用于构建框架的工具,因此只有少数Python开发者编写的抽象基类 阅读全文
posted @ 2017-07-26 22:44 Vincen_shen 阅读(188) 评论(0) 推荐(0) 编辑
摘要:序列的修改、散列和切片 基本的序列协议 —— __len__ 和 __getitem__ 什么是协议: 在面向对象编程中,协议是非正式的接口,只在文档中定义,在代码中不定义。例如Python的序列协议只需要__len__和__getitem__两个方法。任何类只要使用标准的签名和语义实现了这两个方法 阅读全文
posted @ 2017-07-26 22:32 Vincen_shen 阅读(141) 评论(0) 推荐(0) 编辑
摘要:符合Python风格的对象 得益于Python数据模型,自定义类型的行为可以像内置类型那样自然。实现如此自然的行为,靠的不是继承,而是鸭子类型:我们只需按照预定行为实现对象所需的方法即可。 本章包含以下话题: 1、使用一个类方法(classmethod)实现备选构造方法 2、实现只读属性 3、把对象 阅读全文
posted @ 2017-07-26 22:21 Vincen_shen 阅读(151) 评论(0) 推荐(0) 编辑
摘要:对象引用、可变性和垃圾回收 本章先以一个比喻说明 Python的变量: 变量是标签,而不是盒子。 8.1 变量不是盒子 可变对象赋值 就是引用同一个对象, 不可变对象赋值则是复制一个副本。 Python说明标识不通的方式: a is not b 在Cpython中, id() 返回对象的内存地址。 阅读全文
posted @ 2017-07-25 22:53 Vincen_shen 阅读(125) 评论(0) 推荐(0) 编辑
摘要:装饰器和闭包 函数装饰器用于在源码中“标记”函数, 以某种方式增强函数的行为。 这是一项强大的功能,但是若想掌握,必须理解闭包。 nonlocal是新近出现的保留关键字,在Python3.0中引入。 出了在装饰器中有用处之外,闭包还是回调式异步编程和函数式编程风格的基础。 《设计模式: 可复用面向对 阅读全文
posted @ 2017-07-24 00:18 Vincen_shen 阅读(163) 评论(0) 推荐(0) 编辑
摘要:6.1 案例分析: 重构“策略”模式 如果合理利用一等对象的函数,某些设计模式可以简化,“策略”模式就是其中一个很好的例子。 6.1.1 经典的“策略”模式 《设计模式: 可复用面向对象软件的基础》 一书是这样概述“策略”模式的: 定义一些列的算法,把它们一一封装起来,并且使它们可以相互替换。 本模 阅读全文
posted @ 2017-07-21 18:01 Vincen_shen 阅读(174) 评论(0) 推荐(0) 编辑
摘要:一等函数 把函数视作对象, 在python中一切皆对象,只要是对象就可以进行传递。 在Python中,函数是一等对象。编程语言理论家把“一等对象”定义为满足下述条件的程序实体: 1、在运行时创建 2、能赋值给变量或者数据结构中的元素 # {'func': <function func at 0x00 阅读全文
posted @ 2017-07-21 17:32 Vincen_shen 阅读(129) 评论(0) 推荐(0) 编辑
摘要:文本和字节序列 人类使用文本,计算机使用字节序列 -——PyCon 2014 decode(解码, 给人看),encode(编码, 给机器看) Python3 python3 有两种表示字符序列的类型: bytes(8位二进制) 、str(Unicode字节) python3 中的解释器编码默认为: 阅读全文
posted @ 2017-07-21 15:17 Vincen_shen 阅读(118) 评论(0) 推荐(0) 编辑
摘要:字典和集合 dict类型是Python语言的基石,跟它有关的内置函数都在__builtins__.dict模块中。 class dict(object): """ dict() -> new empty dictionary dict(mapping) -> new dictionary initi 阅读全文
posted @ 2017-07-21 11:40 Vincen_shen 阅读(132) 评论(0) 推荐(0) 编辑
摘要:2.1 内置序列类型概览 Python标准库用C实现了丰富的序列类型; 容器序列 list, tuple, collections.deque这些序列能存放不同类型的数据。容器序列存放的是它们所包含的任意类型的对象的引用。 扁平序列 str, bytes, bytearray, memoryview 阅读全文
posted @ 2017-07-18 23:17 Vincen_shen 阅读(162) 评论(0) 推荐(0) 编辑
摘要:1.1 一摞Python风格的纸牌 知识点: collections.nametuple 运行结果: [card(rank='2', suit='spades'), card(rank='3', suit='spades'), card(rank='4', suit='spades'), card( 阅读全文
posted @ 2017-07-17 22:40 Vincen_shen 阅读(241) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示