前言
最近读了一篇A collection of not-so-obvious Python stuff you should
know!,感觉受益颇多.
翻译过来(非直接翻译),再加上一些我的理解和注释. 让大家注意python鲜为人知的”魔法”. 我会分2篇
python多继承(C3)
1 |
|
看起来都是很简单, 有次序的从底向上,从前向后找,找到就返回. 再看例子:
1 |
|
这也就涉及了MRO([Method Resolution Order](http://python-
history.blogspot.ru/2010/06/method-resolution-order.html)):
1 |
|
简单的理解其实就是新式类是广度优先了, D->B, 但是发现C也是继承A,就先找C,最后再去找A
列表的+和+=, append和extend
1 |
|
datetime也有布尔值
这是一个坑
1 |
|
‘==’ 和 is 的区别
我的理解是”is”是判断2个对象的身份, ==是判断2个对象的值
1 |
|
浅拷贝和深拷贝
我们在实际开发中都可以向对某列表的对象做修改,但是可能不希望改动原来的列表. 浅拷贝只拷贝父对象,深拷贝还会拷贝对象的内部的子对象
1 |
|
bool其实是int的子类
这篇bool-is-int很有趣:
1 |
|
元组是不是真的不可变?
1 |
|
这里有个不错的解释[Python’s += Is Weird, Part II ](http://emptysqua.re/blog/python-
increment-is-weird-part-ii/):
1 |
|
python没有私有方法/变量? 但是可以有”伪”的
1 |
|
异常处理加else
1 |
|
版权声明:本文由 董伟明 原创,未经作者授权禁止任何微信公众号和向掘金(juejin.im)转载,技术博客转载采用 保留署名-非商业性使用-禁止演绎 4.0-国际许可协议
python