python进阶

原书内容https://github.com/eastlakeside/interpy-zh

通过记录书本目录和大概内容做一个记录,方便以后回顾检索。

Chapter Title Brief More
1 *argv和**kwargv 给函数输入可变参数 argv为列表,kwargv为字典
2 调试pdb 代码层面下断点调试
3 生成器 定义了__iter__或__getitem__的为可迭代对象,定义了__next__的为迭代器 yeild的用处
4 Map, Filter and Reduce - map会将一个函数映射到一个列表上的所有函数,map(function_to_apply, list_of_outputs)。python3返回一个迭代器,list返回列表。
- filter过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表。
- reduce可以对一个列表进行一些计算并返回结果,类似归并。
5 set数据结构 set不能包含重复元素 - 交集:set1.intersection(set2)
- 差集:set1.difference(set2)
6 装饰器 在执行一个函数期间需要执行其他操作,可以使用装饰器,更简单的就是定义装饰器然后使用@
7 对象变动Mutation 注意默认值,且python默认值只初始一次
8 __slots__魔法 节省小类的资源
9 虚拟环境 virtualenv
10 Collections defaultdict, counter, deque, namedtuple, enum.Enum
11 枚举 Enumerate
12 对象自省(introspection) dir, type, id, inspect
13 推导式(comprehension) 从一种数据序列构建另一种新的数据序列的结构体 eg. list, dict, set 集合的推倒式为{},因为()生成的是迭代器
14 异常 try, except, finally, else 不管触不触发异常都执行finally,异常不触发执行else
15 lambda表达式 lambda 参数: 操作(参数)
16 一行式 简易WebServer
漂亮的打印
脚本性能分析
csv转json
列表flat
一行构造器
python3 -m http.server
from pprint import pprint
python -m cPorfile my_script.py
...
17 for else 当循环完整执行后执行else语句
18 使用C扩展 Ctypes, SWING, Python/C API
19 协程 如果迭代器是数据的生成者,那么协程就是消费者 line = (yield), 通过外部send给协程,就可以执行后续的if pattern in line,关闭用close()
20 函数缓存 函数缓存允许我们将一个函数对于给定参数的返回值缓存起来 @lr_cache(maxsize=32), 清除缓存使用function.cache_clear()
21 上下文管理(with语法) 基于类实现__enter__和__exit__
处理异常
基于生成器@contextmanager

[Book Content]Python进阶的更多相关文章

  1. Python进阶:全面解读高级特性之切片!

    导读:切片系列文章连续写了三篇,本文是对它们做的汇总.为什么要把序列文章合并呢?在此说明一下,本文绝不是简单地将它们做了合并,主要是修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔 ...

  2. Python进阶:迭代器与迭代器切片

    2018-12-31 更新声明:切片系列文章本是分三篇写成,现已合并成一篇.合并后,修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔接做了大量改动.原系列的单篇就不删除了,毕竟也是 ...

  3. python进阶05 常用问题库(1)json os os.path模块

    python进阶05 常用问题库(1)json os os.path模块 一.json模块(数据交互) web开发和爬虫开发都离不开数据交互,web开发是做网站后台的,要跟网站前端进行数据交互 1.什 ...

  4. Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究

    Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究 一丶反射 什么是反射: ​ 反射的概念是由Smith在1982年首次提出的 ...

  5. Python学习day09 - Python进阶(3)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  6. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  7. Python进阶 - 对象,名字以及绑定

    Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...

  8. Python进阶-继承中的MRO与super

    Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...

  9. Python进阶 - 命名空间与作用域

    Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...

随机推荐

  1. lnmp操作

    LNMP 1.2+状态管理: lnmp {start|stop|reload|restart|kill|status}LNMP 1.2+各个程序状态管理: lnmp {nginx|mysql|mari ...

  2. 关闭 Identity 插入限制

    当为identity列插入时会报错: 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'xx'中的标识列指定显式值. 但在复制表数据时想带主键一起复制时,这时要设置IDEN ...

  3. 实现一个简单版的express

    express应该算是早期最优秀的一个node框架了,刚开始学node做后端语言就是用的express,它的cli可以帮我们搭建好项目目录,就像现在的vue,react一样.express本身没有做太 ...

  4. webpack loader之css、scss、less、stylus安装

    1.打包css,需要安装css-loader和style-loader yarn add --dev css-loader style-loader 或者 npm install --save-dev ...

  5. 不同浏览器css引入外部字体的方式

    /** * 字体后缀和浏览器有关,如下所示 * .TTF或.OTF,适用于Firefox 3.5.Safari.Opera * .EOT,适用于Internet Explorer 4.0+ * .SV ...

  6. Python 常见的字符串操作

    1.strip.lstrip和rstrip 描述: 用于移除字符串左右两边.左边.右边指定的字符(默认为空白符,例如:/n, /r, /t, ' ')或字符序列. 语法: str.strip([cha ...

  7. 权值树状数组 HDU-2852 KiKi's K-Number

    引入 权值树状数组就是数组下标是数值的数组,数组存储下标对应的值有几个数 题目 HDU-2852 KiKi's K-Number 题意 几种操作,p=0代表push:将数值为a的数压入盒子 p=1代表 ...

  8. Mapper的方式总结

    Mapper的方式总结: <mappers> <!-- 通过package元素将会把指定包下面的所有Mapper接口进行注册 --> <package name=&quo ...

  9. Linux 简单socket实现UDP通信

    服务器端 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sy ...

  10. HDU 1698 Just a Hook(线段树区间覆盖)

    线段树基本操作练习,防手生 #include <cstdio> #include <cstring> #include <cstdlib> #define lson ...