分享一个准备给公司讲python高级编程的slide
/ / / 阅读数:3320前言
我以前在学习 python 模块的时候,曾经翻译 pymotw 的文章,其实还是有抄袭的嫌疑,从最近开始逐渐直接阅读 python 标准库源码,收获颇多。我现在不愿意教一些从网上或者书里提到的知识点,而更愿意根据我工作中常见的需求去挖掘对应的 python 的解法。也是在过程中对一些东西有了比较深的理解。这个 ppt 是从 像黑客一样使用 Linux 命令行 获得的灵感。然后角度为
PS: 特别推荐 github 上看到的 "雨痕" 的 学习笔记 . 建议大家都好好看看.
找到它
Expert-Python 或者直接下载代码: github
但是注意我的字体内嵌项目里面,请注意流量,避免移动设备直接访问或者强制刷新
UPDATE: 2015-02-02
我已经把视频放到 youtube 上了:https://www.youtube.com/watch?v=bf5qpFFxo9g大家可以选择在线看
目录
- XX 不理解 python 竟然没有 end....
- 设置全局变量
- 字符串格式化
- 操作列表
- 操作字典
- 字典视图
- vars
- from future import unicode_literals
- from future import absolute_import
- 不是支持了绝对引入,而是拒绝隐式引入
- 我靠,我的需求呢?-- 在很多开源项目是拒绝你第一次的隐式用法的,
- 一个关于编码的问题
- 原因是: encoding_example 里面没有对文字自动转化为 unicode, 默认是 ascii 编码
- super 当子类调用父类属性时一般的做法是这样
- super 的一种用法
- 假如不用 super 会这么惨
- 手写一个迭代器
- 标准迭代器
- 生成器
- 斐波那契数列
- 其实 yield 和协程关系很密切
- 来个回调 (阻塞的)
- 来个回调 (异步的)
- 看到这里,就得说说 contextmanager
- 包导入
- 包构建__all__
- 包构建__path__
- 静态方法和类方法的区别
- 静态方法和类方法的区别其实是在这里
- __slots__
- Packaging Tools 的未来
- wheel (即将替代 Eggs 的二进制包格式) 的优点
- 装饰器
- 给函数的类装饰器
- 给类的函数装饰器
- 带参数的装饰器
- @property
- @property 的另外使用方法
- 元类是什么
- 模拟生成一个类
- 元类:__metaclass__(实现前面的 Hello 类)
- 一个难懂的元类
- 描述符
- 模块: itertools
- 模块: collections (一)
- 模块: collections (二)
- 模块: collections (三)
- 模块: collections (四)
- operator 模块 (一)
- operator 模块 (二)
- operator 模块 (三)
- functools 模块之 partial
- functools 模块之 wraps
- functools 模块之 cmp_to_key
- functools 模块之 total_ordering
- 开发陷阱 (一) 可变默认参数
- 开发陷阱 (二) 闭包变量绑定
- 开发陷阱 (二) 闭包应该的用法
- 在合适的地方用合适的技巧
- 不是它不好,而是你没有用好
- ipython 的技巧 (一)
- ipython 的技巧 (二)
- 联系方式
UPDATE 2014.04.11
今天下午分享了这个 ppt. 并且用 quicktime 录像。想听的可以从 百度网盘 下载或者在线看 (793.6M). 时长 2 小时零一分.
中间有个列表去重。有同学说去重后无法保证第一次出现重复数据位置的顺序.
刚才想起来试了一下:
>>> l = [1, 2, 4, 7, 2, 1, 8, 6, 1] >>> list(set(l)) [1, 2, 4, 6, 7, 8] >>> {}.fromkeys(l).keys() [1, 2, 4, 6, 7, 8] # 注意这个和上面结果是一样的,也就是内部实现的去重原理相同 >>> l = ['a', 'b', 'c', 'd', 'b', 'a'] >>> list(set(l)) ['a', 'c', 'b', 'd'] >>> {}.fromkeys(l).keys() ['a', 'c', 'b', 'd'] >>> from collections import OrderedDict >>> OrderedDict().fromkeys(l).keys() # 只能使用这样的方法实现保证顺序的实现 [1, 2, 4, 7, 8, 6] # 感谢@杨博的提醒 |
新的 PYPI 的 DEMO: http://pypi-preview.a.ssl.fastly.net
YouTube 视频无法播放