[Python-Dev] PEP 7 and braces { .... } on if (original) (raw)
Stefan Behnel stefan_ml at behnel.de
Mon Jun 5 03:14:12 EDT 2017
- Previous message (by thread): [Python-Dev] PEP 7 and braces { .... } on if
- Next message (by thread): [Python-Dev] The untuned tunable parameter ARENA_SIZE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Serhiy Storchaka schrieb am 03.06.2017 um 18:25:
Yet about braces. PEP 7 implicitly forbids breaking the line before an opening brace. An opening brace should stay at the end the line of the outer compound statement.
if (mro != NULL) { ... } else { ... } if (type->tpdictoffset != 0 && base->tpdictoffset == 0 && type->tpdictoffset == bsize && (sizet)tsize == bsize + sizeof(PyObject *)) { return 0; /* "Forgive" adding a dict only */ } But the latter example continuation lines are intended at the same level as the following block of code. I propose to make exception for that case and allow moving an open brace to the start of the next line. if (type->tpdictoffset != 0 && base->tpdictoffset == 0 && type->tpdictoffset == bsize && (sizet)tsize == bsize + sizeof(PyObject *)) { return 0; /* "Forgive" adding a dict only */ } This adds a visual separation of a multiline condition from the following code.
Python itself has a similar problem and solves it differently. Why not take a look at PEP-8 here?
""" Yes:
Aligned with opening delimiter.
foo = long_function_name(var_one, var_two, var_three, var_four)
More indentation included to distinguish this from the rest.
def long_function_name( var_one, var_two, var_three, var_four): print(var_one)
Hanging indents should add a level.
foo = long_function_name( var_one, var_two, var_three, var_four)
No:
Arguments on first line forbidden when not using vertical alignment.
foo = long_function_name(var_one, var_two, var_three, var_four)
Further indentation required as indentation is not distinguishable.
def long_function_name( var_one, var_two, var_three, var_four): print(var_one) """
ISTM that overindenting the conditions (i.e. following the "more indentation" example) solves this problem and makes it very readable. The same can be done in C code and avoids having to remember two different special ways to do it for core devs in C and Python.
Stefan
- Previous message (by thread): [Python-Dev] PEP 7 and braces { .... } on if
- Next message (by thread): [Python-Dev] The untuned tunable parameter ARENA_SIZE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]