1
mengzhuo 2014-05-28 15:08:13 +08:00
请用gist
python 的 eq实现,当左对象没有__eq__时,调用另一个的__eq__ |
2
hahastudio 2014-05-28 15:10:36 +08:00
可以看这里 http://eev.ee/blog/2012/03/24/python-faq-equality/
就你结果来看,对于新类,== 是这么判断的 1. 左侧的类有没有自定义实现 __eq__?如果有,就调用left.__eq__(right) 2. 右侧的类有没有自定义实现 __eq__?如果有,就调用right.__eq__(left) 其实你可以试试C继承A,重写__eq__,a==c会print 'C',根据blog,可以追加: 0. 右侧的类是左侧的类的子类,并且重写了__eq__,调用right.__eq__(left) 3. 都没有?尝试使用__cmp__重复上述过程 4. 尝试调用object.__eq__(a, b) |
3
konakona 2014-05-31 18:04:13 +08:00
用IDE格式化一下...
|