Postfix conditionals
BartC
bc at freeuk.com
Mon Feb 3 18:43:57 EST 2014
"Göktuğ Kayaalp" <self at gkayaalp.com> wrote in message
news:mailman.4966.1388953508.18130.python-list at python.org...
> AFAIK, we do not have "postfix conditionals" in Python, i.e. a condition
> appended to a
> statement, which determines whether the statement runs or not:
>
> py> for i in [False]:
> ... break if not i
>
> The above piece of code is equivalent to this in Python:
>
> py> for i in [False]:
> ... if not i
> ... break
> What are your thoughts on this?
I develop my own language (not Python, but also dynamic and interpreted).
I have this feature, and it's OK, but not indispensible. I varied it a bit
by allowing 'if', 'when' and 'unless' as the conditionals, just to break it
up a little. However, it just maps internally to a regular if-statement.
In Python though, the normal way of writing 'break if not i' is about the
same length (in my language it's somewhat longer), so I can't see it getting
much support.
What would be far more useful would be a proper 'switch' statement, but if
that's not in, then I don't think your proposal will get far!
(There are various clunky workarounds for switch - one idea is to use an
if-elseif chain, but that's just what it tries to avoid. Switch is
attractive for an interpreted language because - provided all cases are
constants, a bit of a problem in Python, because as soon as you give a name
to something, it's no longer constant - it can be implemented very
efficiently.)
--
Bartc
More information about the Python-list
mailing list