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
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
The universe is always one step beyond logic.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to