[Python-Dev] (try-except) conditional expression similar to (if-else) conditional (PEP 308)

MRAB python at mrabarnett.plus.com
Fri Aug 7 02:36:34 CEST 2009


Russell E. Owen wrote:
> In article <D28975E8-6706-4515-9C9E-FB7F90775CA5 at masklinn.net>,
>  Xavier Morel <catch-all at masklinn.net> wrote:
> 
>> On 6 Aug 2009, at 00:22 , Jeff McAninch wrote:
>>> I'm new to this list, so please excuse me if this topic has been  
>>> discussed, but I didn't
>>> see anything similar in the archives.
>>>
>>> I very often want something like a try-except conditional expression  
>>> similar
>>> to the if-else conditional.
>> I fear this idea is soon going to extend to all compound statements  
>> one by one.
>>
>> Wouldn't it be smarter to fix the issue once and for all by looking  
>> into making Python's compound statements (or even all statements  
>> without restrictions) expressions that can return values in the first  
>> place? Now I don't know if it's actually possible, but if it is the  
>> problem becomes solved not just for try:except: (and twice so for  
>> if:else:) but also for while:, for: (though that one's already served  
>> pretty well by comprehensions) and with:.
> 
> I like this idea a lot.
> 
For some reason this kind of reminds me of BCPL.

A function definition looked like:

     LET func_name(arg1, arg2) = expression

so, strictly speaking, no multiline functions.

However, there was also the VALOF ... RESULTIS ... block.

In Python, the 'return' statement provides the result of a function; in
BCPL, the 'RESULTIS' statement provided the result of the VALOF block,
which was call from within an expression, like:

     LET foo(...) = VALOF
     $(
         ...
         RESULTIS expression
     $)


More information about the Python-Dev mailing list