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

最新文章

  1. 理解assign,copy,retain变strong
  2. WebClient模拟发送Post请求
  3. 微软职位内部推荐-Pricipal Dev Manager for Application Ecosystem & Service
  4. 梅安森元图地图开放平台、专业GIS地图平台
  5. 给WEB初学者的一些有效率的建议
  6. Matlab小波工具箱的使用2
  7. springmvc java配置
  8. 内核第三讲,进入ring0,以及编写第一个内核驱动程序.
  9. 表连接join on
  10. Android、JavaScript、WebView之间的交互学习
  11. 解决Windows内存问题的两个小工具RamMap和VMMap
  12. 单元测试使用spring注解获取bean
  13. 单片机pc指针
  14. 纯CSS3悬停图标旋转导航动画代码
  15. 重命名和重定向RF执行生成的output文件
  16. Thread.currentThread().getName() ,对象实例.getName() 和 this.getName()区别
  17. BZOJ 3787: Gty的文艺妹子序列
  18. 游戏中的网络同步机制——Lockstep(帧同步)
  19. Excel的Sheet页复制
  20. visitor设计模式记录

热门文章

  1. 4 echo服务器
  2. LeetCode:19. Remove Nth Node From End of List(Medium)
  3. 转:C#微信公众号开发之接收事件推送与消息排重的方法
  4. define 和 const常量有什么区别?
  5. 代码混淆 iOS
  6. Viewer.js 图片预览插件使用
  7. 重写selenium 的 click()操作,使其变成隐式等待
  8. Tuxedo 介绍与安装
  9. python基础篇 08 文件操作
  10. 树莓派putty远程登录windows