Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #50153

Re: A small question about PEP 8

References <CAAF+z6Hp=TZJwcDgyT94cv6Mx3Gy4gxSiZ640b9voAAjgsi6dw@mail.gmail.com> <mailman.4380.1373280314.3114.python-list@python.org> <51daaa51$0$9505$c3e8da3$5496439d@news.astraweb.com>
From Joshua Landau <joshua.landau.ws@gmail.com>
Date 2013-07-08 14:07 +0100
Subject Re: A small question about PEP 8
Newsgroups comp.lang.python
Message-ID <mailman.4386.1373288900.3114.python-list@python.org> (permalink)

Show all headers | View raw


On 8 July 2013 13:02, Steven D'Aprano
<steve+comp.lang.python@pearwood.info> wrote:
> On Mon, 08 Jul 2013 11:39:21 +0100, Joshua Landau wrote:
>  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}
>> """
>
> Well, call me a fool then, because when I have code that extends over
> *one* additional line, I prefer that:
>
>     raise ValueError(
>             "Some error message too long to fit on the above line")
>
> rather than:
>
>     raise ValueError(
>             "Some error message too long to fit on the above line"
>             )

Fool.

>> You can also (be a fool and) put it at the same *indentation*:
>>
>> """
>> a_wonderful_set_of_things = {
>>     ...,
>>     not_missing_an_end_brace
>>     }
>> """
>
> Call me a fool again, since I prefer this when there are more than one
> additional line. At least this time I'm in good company, since that's
> recommended by PEP 8.

Fool (less so, though).

>> Or you can (be sane) and put it at no indentation:
>>
>> """
>> a_wonderful_set_of_things = {
>>     ...,
>>     not_missing_an_end_brace
>> }
>> """
>
> I consider that the least aesthetically pleasing, and also rather awkward:
>
>
> some_result = some_function(
>         arg1, arg2, arg3, arg4,
>         [item1, item2, item3, item4,
>               item5, item6, item7,
>               item8, item9, item10,
> ],
>        arg6, key=spam, word=eggs,
>        extras=None, foo=bar,
> )

http://xkcd.com/605/

It was obvious¹ I was talking in context of my example. I used "no
indentation" because in that case "no indentation" was correct. If you
indent line #1, it follows that other lines might well be indented to
keep style consistent.

¹ I hope. I never suggested otherwise.

Since it's not too clear for you, my usage of fool was meant
pseudoironically as a subtle reminder that it's all subjective anyway,
but that I'm also still right.

Back to comp.lang.python | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: A small question about PEP 8 Joshua Landau <joshua.landau.ws@gmail.com> - 2013-07-08 11:39 +0100
  Re: A small question about PEP 8 Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-07-08 12:02 +0000
    Re: A small question about PEP 8 Dave Angel <davea@davea.name> - 2013-07-08 08:33 -0400
    Re: A small question about PEP 8 Joshua Landau <joshua.landau.ws@gmail.com> - 2013-07-08 14:07 +0100

csiph-web