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