[Python-Dev] Adding a conditional expression in Py3.0 (original) (raw)
Gustavo J. A. M. Carneiro gjc at inescporto.pt
Tue Sep 27 15:11:13 CEST 2005
- Previous message: [Python-Dev] Adding a conditional expression in Py3.0
- Next message: [Python-Dev] Adding a conditional expression in Py3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sun, 2005-09-25 at 19:11 +0200, Reinhold Birkenfeld wrote:
Sokolov Yura wrote: > Sorry for looking in every hole. > Just a suggestion. > > A= condition and first or second > problem is in case when first in (None,0,[],""). > May be invent new operator 'take'. > take - returns right operator when left evals to True and stops > computing condidtional expression. > Then we could write: > > A = condition take first or second. > A = x==y take w or s > A = z is not None and q!=12 take [] or allowable(z,q) take [(z,q)] or > "Impossible" > > Ok, it might looks ugly. But may be not.
One of the advantages of (if x then y else z) is that it doesn't require the introduction of a new keyword (I think the "then" could be special- cased like "as" in the import statement).
This wouldn't look so bad either: (if x: y else: z)
More realistic example:
def greet(person=None):
print "Hello %s" % (if person is None: "World" else: person)
Not as compact as C's ?:, but more readable and intuitive. It's just like an if-else construct, but on a single line and () around to make it look like an expression instead of a statement.
Reinhold
Gustavo J. A. M. Carneiro <gjc at inescporto.pt> <gustavo at users.sourceforge.net> The universe is always one step beyond logic.
- Previous message: [Python-Dev] Adding a conditional expression in Py3.0
- Next message: [Python-Dev] Adding a conditional expression in Py3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]