[Python-ideas] "else" expression ":"

Mark Lawrence breamoreboy at yahoo.co.uk
Sat Apr 13 21:34:32 CEST 2013


On 13/04/2013 19:24, Peter Norvig wrote:
>
>
>
> Beginners will often write code like this:
>
> if val > 0:
>      return +1
> elif val < 0:
>      return -1
> elif val == 0:
>      return 0
>
> Now if you did this in Java, the compiler would produce an error saying
> that there is an execution path that does not return a value. Python
> does not give an error message, but it would be considered more
> idiomatic (and slightly more efficient) to have just "else:" in the
> third clause.
>
> Here's an idea to address this.  What do you think of the syntax
>
>       "else" expression ":"
>
> for example:
>
> if val > 0:
>      return +1
> elif val < 0:
>      return -1
> else val == 0:
>      return 0
>
> with the interpretation:
>
> if val > 0:
>      return +1
> elif val < 0:
>      return -1
> else:
>      assert val == 0
>      return 0
>
> I have to say, I'm uncertain.  I'm not sure this is even a good idea at
> all, and I'm not sure if it should translate into  "assert expression"
> or whether it should be "if not expression: raise ValueError". What do
> you think?
>
> -Peter Norvig
>

Big -1 from me, if it ain't broke don't fix it.


-- 
If you're using GoogleCrap™ please read this 
http://wiki.python.org/moin/GoogleGroupsPython.

Mark Lawrence




More information about the Python-ideas mailing list