I am trying to overload the "and" operatior, but my __and__ method is never called. The code look like this:
class Filter: column = "" operator = "" value = "" def __init__(self, col, op, val): self.column = col self.operator = op self.value = val def toString(self): return self.column + " " + self.operator + " " + self.value def __and__(self, other): print "And" return And(self, other) class And: lFilter = None rFilter = None def __init__(self, l, r): self.lFilter = l self.rFilter = r def toString(self): return "(" + self.lFilter.toString() + ") and (" + self.rFilter.toString() + ")" f1 = Filter("name", "=", "Kalle") f2 = Filter("city", "=", "LA") andFilter = (f1 and f2) print andFilter.toString() What is wrong with this code? The result when I run the script is "city = LA". The AndFilter is never created. /Fredrik -- http://mail.python.org/mailman/listinfo/python-list