[Python-Dev] conditional expressions? (original) (raw)

Guido van Rossum guido@python.org
Mon, 15 Oct 2001 18:02:31 -0400


Because the conditional ends in something that "pulls in" all following binary operators and their operands until it hits a ")", I find it safer not to let it accept an operator at the front.

To explain this perhaps a bit better, the 'else' keyword acts as the right side of a low-priority binary operator with respect to the expression that follows. It would be unpleasant if the 'if' keyword acted as the left side of a high-priority operator to the expression that preceeds it. Again, think of what this would mean:

(3 * if x then y else z + 4)

--Guido van Rossum (home page: http://www.python.org/~guido/)