On 07/04/2015 02:08, Guido van Rossum wrote:
I've taken the liberty of adding the following old but good rule to PEP 8 (I was surprised to find it wasn't already there since I've lived by this for ages):

 *

    Be consistent in return statements. Either all return statements
    in a function should return an expression, or none of them should.
    If any return statement returns an expression, any return
    statements where no value is returned should explicitly state this
    asreturn None, and an explicit return statement should be present
    at the end of the function (if reachable).

    Yes:

    def foo(x):
         if x >= 0:
             return math.sqrt(x)
         else:
             return None

That would seem to be good style and common sense.

As a matter of interest, how far away from mainstream am I in preferring, *in this particular example* (obviously it might be different for more complicated computation),

    def foo(x):
        return math.sqrt(x) if x >= 0 else None

I probably have a personal bias towards compact code, but it does seem to me that the latter says exactly what it means, no more and no less, and therefore is somewhat more readable. (Easier to keep the reader's attention for 32 non-whitespace characters than 40.)

Sorry if this is irrelevant to Guido's point.
Rob Cliffe
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to