PEP 308: Alternative conditional operator forms -- Corner Case solved
Samuele Pedroni
pedronis at bluewin.ch
Tue Feb 11 16:07:13 EST 2003
"Samuele Pedroni" <pedronis at bluewin.ch> ha scritto nel messaggio
news:3e4951cc$1_2 at news.bluewin.ch...
>
> brilliant, you've just made the problem worse!
AK> How so?
You consider having a conditional expression looking like the statement a
feature and you have worked to _technically_ solve the parser, language
definition details to have it so...
I consider that possibility a mixed bless, I would rather (if we should have
one) have a conditional operator that looks operatorial and in the same
family
of 'and'/'or'. Why?
Because the fact that Python distinguishes statements and expressions is
basically, apart from being the status quo and what is implemented, a
_deliberate_ decision, that happens to work well together with
indentation-delimited blocks.
[OTOH is probably not impossible to conceive a language that mixes
indentation
usage and () usage as delimiters and where everything is an expression and
produces a value]
Having a conditional expression that looks like a statement will touch this
very nerve ...
and will blur the distinction from the hand-on experience of the language
(of
course not from the lang ref POV).
I prefer not to be confronted (if possible) with the questions:
"Why this does not work?" with this being:
if x: (print x)
(for x in l: print l)
...
if x>0: print "pos" else: print "negative"
they make no sense from the lang ref/lawyer perspective. But if the asker
is
naive/confused/a troll/impertinent:
answering ye we have this two things that look the same but one is a
statement
and one is an expression and we disambiguate them so, put in [clever
explanation], but we are for statement/expression distinction and RTFM
is a kind of "cheap bastard" attitude, because the fact that the above are
invalid is also a matter of _deliberate_choice, so we would have to go
philosophical and discuss this is "pythonic" and this not and the
statement/expression distinction thing, and argue about readability ...
so if possible I would rather avoid this, thanks.
More information about the Python-list
mailing list