PEP 308 - ternary operator
Mike Thompson
none
Mon Feb 10 23:49:44 EST 2003
More information about the Python-list mailing list
Mon Feb 10 23:49:44 EST 2003
- Previous message (by thread): PEP 308 - ternary operator
- Next message (by thread): PEP 308 - ternary operator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Jim Jinkins" <j-jinkins at usa.net> wrote in message news:vXZ1a.9151$5l.1679097 at twister.midsouth.rr.com... > > If this is not acceptable my second choice is a functional form: > iif(cond, expr1, expr2) > > This is not a function, it is a built-in macro. > It looks like a function though. Enough to be confusing to those new to Python (like me). I'm really too new to Python to participate ... but wait, in some ways that's ok because I can give an "experienced C++, but still learning Python" perspective. So what the hell, I'll propose something ... how about x = ?(cond, expr1, expr2) # no longer looks like a function call perhaps, even x = ?( cond, expr1, expr2 ?) # <---- maybe ')?' perhaps, simply x = ? cond, expr1, expr2 ? # didn't like this initially, but it grew on me All these suggestions involve adding an operator and I had no idea about the parseablity/ambiguity of such additions, but if one of these suggestions was ok then it would offer the following: 1. Clearly not a function 2. Inline ordering 3. No new reserved word. 4. Use of '?' which will be a hint to the ?:-like behaviour 5. Use of ? which carries a sense of conditionality for those without C/C++ backgrounds. BTW, I've explicitly avoided something enclosed in ( ) alone, like say (? ....?), because that makes the use of these expressions look peculiar when used as function arguments. Two lots of brackets would result ..... func(( ..... )) # too strange I really do hope I haven't made an idiot of myself here. BTW, from my reading of this topic, the archetypical use-case turns a word into its plural by taking on an "s" ... or not ... depending on a condition. The winning option should make this easy/neat IMO.make I.e. using the 3rd form I give above ... print "widget%s loaded" % ?num > 0, "s", ""? Cheers, Mike
- Previous message (by thread): PEP 308 - ternary operator
- Next message (by thread): PEP 308 - ternary operator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list