《流畅的Python》笔记
文章平均质量分 52
学习《流畅的Python》,介绍特性和摘要
Joovo
成事不说,遂事不谏,既往不咎。
展开
-
《流畅的Python》读书笔记
博客目录:《流畅的Python》 读书笔记1-序列《流畅的Python》读书笔记2-函数的参数《流畅的Python》读书笔记3-operator模块和functools模块《流畅的Python》读书笔记4-函数装饰器和闭包详解为什么看这本书?很早就总各种方面接触到 Python,之前写过脚本,前一阵子开始写爬虫,写到复杂的爬虫发现自己边谷歌边打代码的方式已经不够用了。于...原创 2018-07-26 00:16:14 · 1565 阅读 · 0 评论 -
《流畅的Python》1-序列
书上前言讲到,本书主要强调 Python 独有的特性。这里记录了一些自己所忽视的一些用法和函数。列表推导式和生成器表达式列表推导式 list comprehension/listcomp/lc通常原则是为了更易读 用 listcomp 来创建新的列表,若超过两行,则应考虑重写。map/filtermap 和 filter 配合 lambda 能做 listcomp...原创 2018-07-03 17:13:25 · 809 阅读 · 0 评论 -
《流畅的Python》2-函数的参数
用一个例子来看 Python 的函数参数处理机制。 Python3 提供了仅限关键词参数( keyword-only arguement)。用*可迭代对象,用**表示映射到单个参数def tag(name,*content,cls=None,**attrs): if cls is None: attrs['class']=cls if attrs...原创 2018-07-16 17:05:41 · 488 阅读 · 0 评论 -
《流畅的Python》3-operator模块和functools模块
operator模块 使用 itemgetter 排序一个元组列表。attritem 提取对象的属性。methodcallerfunctools.partial 冻结参数 Python 提供 operator模块和 functools模块来方便地实现函数式编程。operator模块用lambda实现阶乘函数from functools import red...原创 2018-07-17 00:30:08 · 615 阅读 · 0 评论 -
《流畅的Python》4-函数装饰器和闭包详解
基础知识Python 何时执行装饰器用装饰器改进“策略”模式变量作用域规则闭包nonlocal 声明实现一个简单的装饰器标准库中的装饰器 functools.lru_cache 做备忘单分派泛函数叠放装饰器参数化装饰器 在我另一篇博客里稍微有讲到一点,说的不是很好。首先学习前要了解 Python 里函数是一等对象。 函数装饰器是用来增强函数的行为,而想实现...原创 2018-07-21 00:34:17 · 611 阅读 · 0 评论 -
《流畅的Python》5-对象引用,可变性,垃圾回收
标识,相等性和别名 在 == 和 is 中选择元组的相对不可变性浅复制和深复制 默认做浅复制如何做深复制函数的参数作为引用 防御可变参数垃圾回收 weakref.finalize注册回调函数观察对象销毁弱引用weakref.WeakValueDictionary简介 很有趣的基础知识环节。标识,相等性和别名每个变量都有标识,类型,值。每个对象标识只有...原创 2018-07-25 23:50:08 · 546 阅读 · 0 评论 -
《流畅的Python》6-鸭子类型和切片原理
书中 9-10 章用实现一个Vector类来了解一个类的运行和实现过程,作者实现的细节非常值得一看,这里就不搬运了,讲一下序列中切片的原理。鸭子类型切片原理鸭子类型在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由”当前方法和属性的集合”决定。通俗来讲,“当看到一只鸟走...原创 2018-08-10 01:25:24 · 431 阅读 · 0 评论 -
《流畅的Python》8-可迭代对象,迭代器和生成器
关注的本节内容:实现一个可迭代对象和迭代器可迭代对象和迭代器的区分实现一个标准的迭代器生成器迭代器(进阶)惰性定义一个Sentence 类生成器表达式(语法糖)实现一个可迭代对象和迭代器可迭代对象如何实现迭代?调用iter(x) , x为可迭代对象。按照三个顺序: 1. 是否实现了__item__方法,如果实现了,调用他并获取一个迭代器。 2. 是否实现了__...原创 2018-08-27 03:19:09 · 304 阅读 · 0 评论 -
Python 函数的参数,签名
<!-- TOC depthFrom:1 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->参数处理机制函数签名对象注意是小写的signature参数处理机制用一个例子来看 Python 的函数参数处理机制。 Python3 提供了仅限关键词参数( keyword-only arguement)。...原创 2018-09-03 21:15:49 · 1957 阅读 · 0 评论 -
《流畅的Python》10-协程初步
StopIteration协程放在生成器,迭代器后面讲,这也是生成器的最终的归宿,或者把它理解为高阶的特性。如果生成器仅仅是当作语法糖,那么它可以被很容易的被其他形式替代而不会被重视。同时,作者指出,协程作为一种鲜为人知,资料匮乏的特性,看起来并不是很有用,常常被忽视。实际上关于Python的一般广为人知的特性已经介绍完了,不过事情正变得更有趣。前面介绍协程,然后介绍新的句法,用yield...原创 2018-09-03 23:58:02 · 381 阅读 · 0 评论 -
《流畅的Python》9-上下文管理器,with 和 else
else 的用法除了 if/else 外,for ,while 语句都可以使用 else 。举例for i in range(10): if i == 11: breakelse: print('magic')含义显而易见,处理for循环里没有被处理的情况,优点是不用设置特殊标志来判断。上下文管理器with 语句处理的对象就是上下文...原创 2018-08-29 22:42:30 · 338 阅读 · 0 评论 -
《流畅的Python》12-构造对象
构造对象的常用到几个概念:super(),__new__,__init____new__和__init__一般将__init__称为构造方法,实际上__new__用于实例化类,__init__用于初始化实例。Python构造对象的伪代码:def object_maker(the_class,some_arg): new_object=the_class.__new__(some...原创 2018-11-15 22:33:05 · 313 阅读 · 0 评论 -
《流畅的Python》11-用concurrent.futures (期物)处理并发
期物(future)是指一种对象,表示异步执行的操作。这个概念的作用很大,是 concurrent.futures 模块和asyncio 包(第 18 章讨论)的基础。期物是译者自创的词,类似于期货,期权,字面上可以简单理解为要执行而未执行的操作。这一章基本上可以作为协程和asyncio包两个章节中承上启下的部分,因为协程实际上描述了异步的思想和简单实现,而concurrent.futur...原创 2018-09-09 00:15:34 · 742 阅读 · 0 评论