[Python-Dev] PEP 8 update
Stefan Behnel
stefan_ml at behnel.de
Tue Apr 7 20:34:24 CEST 2015
Antoine Pitrou schrieb am 07.04.2015 um 14:26:
> On Tue, 07 Apr 2015 03:11:30 +0100
> Rob Cliffe <rob.cliffe at btinternet.com> wrote:
>>
>> 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 agree with you on this.
+1, the ternary operator reads best when there is a "normal" case that can
go first and a "special" or "unusual" case that can go last and does not
apply under the (given) normal conditions.
Stefan
More information about the Python-Dev
mailing list