A small question about PEP 8

Joshua Landau joshua.landau.ws at gmail.com
Mon Jul 8 06:39:21 EDT 2013


On 8 July 2013 00:32, Xue Fuqiao <xfq.free at gmail.com> wrote:
> Hi all,
>
> (English is not my native language; please excuse typing errors.)
>
> I'm a Python newbie and just started reading PEP 8.  PEP says:
>
> -----------------------------------------------------------------------
> |The closing brace/bracket/parenthesis on multi-line constructs may
> |either line up under the last item of the list, as in:
> |
> |my_list = [
> |    1, 2, 3,
> |    4, 5, 6,
> |    ]
> |result = some_function_that_takes_arguments(
> |    'a', 'b', 'c',
> |    'd', 'e', 'f',
> |    )
> -----------------------------------------------------------------------
>
> I think the last item in my_list/result is 6/'f', respectively.  So why
> doesn't the bracket/paren line up _under_ the last item?  ISTM the code
> isn't consistent with the description.
>
> I have searched the archive of c.l.p and the web, but nothing helped.
> Can anyone point me in the right direction?

You will grow to be a wonderful pedant. What it means is that the
indentation will match the last one. Imagine:

"""
a_wonderful_set_of_things = {
    bannanas_made_of_apples,
    chocolate_covered_horns,
    doors_that_slide,
    china_but_on_the_moon,
    buffalo_with_windy_hair,
    not_missing_an_end_brace
"""¹

Now, there are several places you can put the end brace. You can (be a
massive fool and) put it after the last item:

"""
a_wonderful_set_of_things = {
    ...,
    not_missing_an_end_brace}
"""

You can also (be a fool and) put it at the same *indentation*:

"""
a_wonderful_set_of_things = {
    ...,
    not_missing_an_end_brace
    }
"""

Or you can (be sane) and put it at no indentation:

"""
a_wonderful_set_of_things = {
    ...,
    not_missing_an_end_brace
}
"""

Theoretically, there are more places you could put it (but we won't go
there... *shudder*).

The second of these is the one that PEP 8 was trying to explain. I
agree wording could be improved, but hey. You can file a bug report at
bugs.python.org if you care enough.

¹}



More information about the Python-list mailing list