style: single and multiple lines

Rhodri James rhodri at kynesim.co.uk
Mon Oct 2 14:42:43 EDT 2017


On 02/10/17 17:00, Stefan Ram wrote:
>    My copy of pep 8 (from 2016) says:
> 
> Yes:
> 
> def f(x): return 2*x
> 
>    . So this single-line style should not be that bad.
> 
>    However, I remember someone saying that the multiline
>    style is more phytonic?
> 
>    So, is this better:
> 
> def f(x):
>      return 2*x

Most of the time, yes.  The whitespace on the left-hand side is a good 
visual cue that something content-like is happening, in this case the 
body of a function.  The fact that it has shape makes it easier to 
comprehend at a glance.

>    ? And is
> 
> def f(x):
>      y = x*2
>      return y
> 
>    better than
> 
> def f(x):
>      y = x*2; return y

Hell yes.  One thought per line, please.

Something I keep repeating to clients is that whitespace is not the 
enemy.  Not even in C.  Judicious use of spacing can make code *much* 
easier to comprehend.  Densely-written code makes you work hard to break 
it down into manageable chunks; something as simple as the odd blank 
line to "paragraph" your code can make that a lot easier.

Experience also suggests a correlation between code that's hard to read 
and code that's rather crap.

-- 
Rhodri James *-* Kynesim Ltd



More information about the Python-list mailing list