python bug with __le__, __ge__?
<p>Is it me or python that is confused with the following code ?  I would expect <code>__le__</code> to be called by <code>a &lt;= ab</code>, not <code>__ge__</code>:</p>



<pre><code>#!/usr/bin/env python2

class B(object):
    def __ge__(self, other):
        print("__ge__ unexpectedly called")

class A(object):
    def __le__(self, other):
        print("__le__ called")

class AB(A, B):
    pass

a = A()
ab = AB()

a &lt;= ab # --&gt; __ge__ unexpectedly called
ab &lt;= a # --&gt; __le__ called
</code></pre>

<p>I get the same behavior with python 2.7, 3.2 and pypy 1.9.  </p>

<p>What can I do to get <code>__le__</code> called instead of <code>__ge__</code> ??</p>
