2016/12/19
描述
我感觉magic method 是python的进阶主题之一
有时候遇到, 感觉自己能看懂, 但是实际上不清楚其执行流程
官网文档看了一遍, 感觉不过瘾, 是否有更好的资料呢?
目的是什么
1. 对magic method做深入了解
2. 起码自己能用上
上下文环境
产品版本: Python2.7.x
操作系统: Linux
magic method: 类似
__getattr__
这一类的, python里面很多, 各有不同作用
尝试解决
what is python magic method?
python magic method advanced
我不建议一次性地了解所有 dunder names。
因为 Python 的 dunder names 用在无数的地方:语言级别的,库级别的,通用的,特定模块/类使用的,类级别的,模块级别的。太繁多了!我建议你按类别去了解,见一个懂一类。比如运算符重载的,装作 list / dict 添加行为的,descriptor,模块导入相关的,类创建、管理和自身属性,迭代和异步迭代,上下文管理,等等。
主要看你手头的代码和官方文档,不懂的地方再 Google 一下,基本上就没问题了。还有疑惑不解的地方,可以去翻翻源码。Python 的源码组织得很好的。