One liners

Michael Torrie torriem at gmail.com
Sat Dec 7 11:26:42 EST 2013


On 12/07/2013 09:13 AM, Rotwang wrote:
> On 07/12/2013 12:41, Jussi Piitulainen wrote:
>> [...]
>>
>>    if tracks is None:
>>       tracks = []
> 
> Sorry to go off on a tangent, but in my code I often have stuff like 
> this at the start of functions:
> 
>      tracks = something if tracks is None else tracks
> 
> or, in the case where I don't intend for the function to be passed 
> non-default Falsey values:
> 
>      tracks = tracks or something
> 
> Is there any reason why the two-line version that avoids the ternary 
> operator should be preferred to the above?

I think for such a short operation, and for a common need like this,
what you do is fine.  Personally I prefer the part you quoted from
Jussi, but your examples are just fine for correctness and readability.
 I think Dan's gripes come when cleverness is taken to the extreme.



More information about the Python-list mailing list