
1 mengzhuo May 28, 2014 请用gist python 的 eq实现,当左对象没有__eq__时,调用另一个的__eq__ |
2 hahastudio May 28, 2014 可以看这里 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 May 31, 2014 用IDE格式化一下... |