前言
最近读了一篇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