Isn't bool __invert__ behaviour "strange"?

MonkeeSage MonkeeSage at gmail.com
Fri Sep 22 17:09:21 EDT 2006


Hi Saizan,

I don't really see anything wrong with creating a custom class for
evaluating those kinds of logical statements. It does make the code for
statements more concise and easy to follow (with less binding
ambiguity). Mabye something like this would help:

class logic(int):
  def __sub__(self):
    return logic(not self)
  def eval(self, statement):
    return bool(statement)
  def make_logical(self, *args):
    out = []
    for arg in args:
      out.append(logic(arg))
    return out

l = logic()
# init a buch of variables (or a list) at once
x, y, z = l.make_logical(True, False, True)
# or one at a time
v = logic(False)
# evaluate a statement
print l.eval((x and y) or (-z or -v)) # True

Regards,
Jordan




More information about the Python-list mailing list