JC wrote: > Hello, > > Is it possible in python: > > if ((x = a(b,c)) == 'TRUE'): > print x
Fortunately, no. Assignment as an expression is an anti-pattern and a bug magnet. The above is best written as: if a(b,c) == 'TRUE': print 'TRUE' If you need the result of calling the a() function, possibly because you also have an else clause: x = a(b,c) if x == 'TRUE': print x else: print x, 'is not equal to a TRUE string.' Your subject line is misleading, since this has nothing to do with If. You *can* write an If one liner: if condition() == 'FLAG': print "condition equals flag" What you can't do is assignment as an expression: # None of these work if (x = func()) == 'RESULT': ... for item in (x = func()) or sequence: ... vars = [1, 2, 3, (x = func()), 4] -- Steven -- https://mail.python.org/mailman/listinfo/python-list