[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