[Python-Dev] Suggested addition to PEP 8 for context managers

Guido van Rossum guido at python.org
Wed Apr 18 19:38:41 CEST 2012

On Wed, Apr 18, 2012 at 9:25 AM, Georg Brandl <g.brandl at gmx.net> wrote:
> On 18.04.2012 17:47, Chris Angelico wrote:
>> On Thu, Apr 19, 2012 at 12:47 AM, Guido van Rossum<guido at python.org>
>>  wrote:
>>>  I don't believe PEP 8 requires whitespace around all binary operators.
>>>  Where do you read that?
>> Quoting from
>> http://www.python.org/dev/peps/pep-0008/#other-recommendations
>> (with elision):
>> Use spaces around arithmetic operators:
>>    No:
>>       i=i+1
>>       submitted +=1
>>       x = x*2 - 1
>>       hypot2 = x*x + y*y
>>       c = (a+b) * (a-b)
>> End quote.
> I agree that this could be reworded.  Especially when the operands are
> as short as in the examples, the last three "No"s read better to me than
> the "Yes" entries.  In this case, spacing serves for visually grouping
> expressions by precedence, which otherwise could also be indicated by
> (semantically unnecessary) parens.

Indeed. I don't know who put that in, it wasn't me.

> But in all cases discussed here, PEP8 should not be seen as a law.
> Its second section ("A Foolish Consistency is the Hobgoblin of Little
> Minds") is quite prominent for a reason.

I think whoever put that blanket rule in the PEP fell prey to this.

Let's change this to something more reasonable, e.g.

If operators with different priorities are used, consider adding
whitespace around the operators with the lowest priority(ies). This is
very much to taste, however, never use more than one space, and always
have the same amount of whitespace on both sides of a binary operator.

--Guido van Rossum (python.org/~guido)

More information about the Python-Dev mailing list