On 27-Aug-11 11:53 AM, Hans Mulder wrote:
On 27/08/11 17:16:51, Colin J. Williams wrote:

What about:
cond= isinstance(left, PyCompare)
and isinstance(right, PyCompare)
and left.complist[-1] is right.complist[0]
py_and= PyCompare(left.complist + right.complist[1:])if cond
else: py_and = PyBooleanAnd(left, right)
Colin W.

That's a syntax error. You need to add parenthesis.

How about:

cond = (
isinstance(left, PyCompare)
and isinstance(right, PyCompare)
and left.complist[-1] is right.complist[0]
}
py_and = (
PyCompare(left.complist + right.complist[1:])
if cond
else PyBooleanAnd(left, right)
)

-- HansM

I like your 11:53 message but suggest indenting the if cond as below to make it clearer that it, with the preceding line, is all one statement.

Colin W.

#!/usr/bin/env python
z= 1
class PyCompare:
    complist = [True, False]
    def __init__(self):
        pass
left= PyCompare
right= PyCompare
def isinstance(a, b):
    return True
def PyBooleanAnd(a, b):
    return True
def PyCompare(a):
    return False
z=2

def try1():

      '''    Hans Mulder suggestion  03:50  '''
      if (
          isinstance(left, PyCompare)
          and isinstance(right, PyCompare)
          and left.complist[-1] is right.complist[0]
      ):
          py_and = PyCompare(left.complist + right.complist[1:])
      else:
          py_and = PyBooleanAnd(left, right)

def try2():
      '''        cjw response - corrected  11:56  '''
      cond=  (isinstance(left, PyCompare)
             and isinstance(right, PyCompare)
             and left.complist[-1] is right.complist[0])
      py_and= (PyCompare(left.complist + right.complist[1:]) if cond
              else PyBooleanAnd(left, right))

def try3():
    '''       Hans Mulder 11:53   '''
    cond = (
        isinstance(left, PyCompare)
        and isinstance(right, PyCompare)
        and left.complist[-1] is right.complist[0]
        )  # not }
    py_and = (
             PyCompare(left.complist + right.complist[1:])
             if   cond
             else PyBooleanAnd(left, right)
            )
def main():
    try1()
    try2()
    try3()
if __name__ == '__main__':
    main()
    pass
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to