Additional clarifications based on discussion amongst the PEP authors.
This commit is contained in:
parent
c2e9b27e6a
commit
eea38be724
58
pep-0008.txt
58
pep-0008.txt
|
@ -78,14 +78,14 @@ Use 4 spaces per indentation level.
|
||||||
|
|
||||||
Continuation lines should align wrapped elements either vertically
|
Continuation lines should align wrapped elements either vertically
|
||||||
using Python's implicit line joining inside parentheses, brackets and
|
using Python's implicit line joining inside parentheses, brackets and
|
||||||
braces, or using a hanging indent. When using a hanging indent the
|
braces, or using a *hanging indent* [#fn-hi]_. When using a hanging
|
||||||
following considerations should be applied; there should be no
|
indent the following considerations should be applied; there should be
|
||||||
arguments on the first line and further indentation should be used to
|
no arguments on the first line and further indentation should be used
|
||||||
clearly distinguish itself as a continuation line.
|
to clearly distinguish itself as a continuation line.
|
||||||
|
|
||||||
Yes::
|
Yes::
|
||||||
|
|
||||||
# Aligned with opening delimiter
|
# Aligned with opening delimiter.
|
||||||
foo = long_function_name(var_one, var_two,
|
foo = long_function_name(var_one, var_two,
|
||||||
var_three, var_four)
|
var_three, var_four)
|
||||||
|
|
||||||
|
@ -95,25 +95,54 @@ Yes::
|
||||||
var_four):
|
var_four):
|
||||||
print(var_one)
|
print(var_one)
|
||||||
|
|
||||||
|
# Hanging indents should add a level.
|
||||||
|
foo = long_function_name(
|
||||||
|
var_one, var_two,
|
||||||
|
var_three, var_four)
|
||||||
|
|
||||||
No::
|
No::
|
||||||
|
|
||||||
# Arguments on first line forbidden when not using vertical alignment
|
# Arguments on first line forbidden when not using vertical alignment.
|
||||||
foo = long_function_name(var_one, var_two,
|
foo = long_function_name(var_one, var_two,
|
||||||
var_three, var_four)
|
var_three, var_four)
|
||||||
|
|
||||||
# Further indentation required as indentation is not distinguishable
|
# Further indentation required as indentation is not distinguishable.
|
||||||
def long_function_name(
|
def long_function_name(
|
||||||
var_one, var_two, var_three,
|
var_one, var_two, var_three,
|
||||||
var_four):
|
var_four):
|
||||||
print(var_one)
|
print(var_one)
|
||||||
|
|
||||||
|
The 4-space rule is optional for indentation lines.
|
||||||
|
|
||||||
Optional::
|
Optional::
|
||||||
|
|
||||||
# Extra indentation is not necessary.
|
# Hanging indents *may* be indented to other than 4 spaces.
|
||||||
foo = long_function_name(
|
foo = long_function_name(
|
||||||
var_one, var_two,
|
var_one, var_two,
|
||||||
var_three, var_four)
|
var_three, var_four)
|
||||||
|
|
||||||
|
This PEP explicitly takes no position on how or whether to further
|
||||||
|
visually distinguish continuation lines after multi-line ``if``
|
||||||
|
statements. Some acceptable options include::
|
||||||
|
|
||||||
|
# No extra indentation.
|
||||||
|
if (this
|
||||||
|
and that):
|
||||||
|
do_something()
|
||||||
|
|
||||||
|
# Add a comment, which will provide some distinction in editors
|
||||||
|
# supporting syntax highlighting.
|
||||||
|
if (this
|
||||||
|
and that):
|
||||||
|
# Since both conditions are true, we can frobnicate.
|
||||||
|
do_something()
|
||||||
|
|
||||||
|
|
||||||
|
# Add some extra indentation on the conditional continuation line.
|
||||||
|
if (this
|
||||||
|
and that):
|
||||||
|
do_something()
|
||||||
|
|
||||||
The closing brace/bracket/parenthesis on multi-line constructs may
|
The closing brace/bracket/parenthesis on multi-line constructs may
|
||||||
either line up under the first non-whitespace character of the last
|
either line up under the first non-whitespace character of the last
|
||||||
line of list, as in::
|
line of list, as in::
|
||||||
|
@ -183,7 +212,7 @@ exclusively or primarily by a team that can reach agreement on this
|
||||||
issue, it is okay to increase the nominal line length from 80 to
|
issue, it is okay to increase the nominal line length from 80 to
|
||||||
100 characters (effectively increasing the maximum length to 99
|
100 characters (effectively increasing the maximum length to 99
|
||||||
characters), provided that comments and docstrings are still wrapped
|
characters), provided that comments and docstrings are still wrapped
|
||||||
at 72 characters.
|
at 72 characters.
|
||||||
|
|
||||||
The Python standard library is conservative and requires limiting
|
The Python standard library is conservative and requires limiting
|
||||||
lines to 79 characters (and docstrings/comments to 72).
|
lines to 79 characters (and docstrings/comments to 72).
|
||||||
|
@ -1155,6 +1184,16 @@ Programming Recommendations
|
||||||
automated utilities could be supported.
|
automated utilities could be supported.
|
||||||
|
|
||||||
|
|
||||||
|
.. rubric:: Footnotes
|
||||||
|
|
||||||
|
.. [#fn-hi] *Hanging indentation* is a type-setting style where all
|
||||||
|
the lines in a paragraph are indented except the first line. In
|
||||||
|
the context of Python, the term is used to describe a style where
|
||||||
|
the opening parenthesis of a parenthesized statement is the last
|
||||||
|
non-whitespace character of the line, with subsequent lines being
|
||||||
|
indented until the closing parenthesis.
|
||||||
|
|
||||||
|
|
||||||
References
|
References
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
@ -1168,6 +1207,7 @@ References
|
||||||
.. [4] PEP 8 modernisation, July 2013
|
.. [4] PEP 8 modernisation, July 2013
|
||||||
http://bugs.python.org/issue18472
|
http://bugs.python.org/issue18472
|
||||||
|
|
||||||
|
|
||||||
Copyright
|
Copyright
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue