title: redefine __and__ operator
body: <p>Why I can't redefine the <code>__and__</code> operator?</p>
  
  <pre><code>class Cut(object):
        def __init__(self, cut):
           self.cut = cut
        def __and__(self, other):
           return Cut("(" + self.cut + ") &amp;&amp; (" + other.cut + ")")
  
  a = Cut("a&gt;0") 
  b = Cut("b&gt;0")
  c = a and b
  print c.cut()
  </code></pre>
  
  <p>I want <code>(a&gt;0) &amp;&amp; (b&gt;0)</code>, but I got b, that the usual behaviour of <code>and</code></p>