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 |