[Python-Dev] PEP 7 clarification request: braces

Tres Seaver tseaver at palladion.com
Mon Jan 2 21:25:00 CET 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 01/02/2012 01:02 AM, Nick Coghlan wrote:
> On Mon, Jan 2, 2012 at 3:04 PM, Scott Dial 
> <scott+python-dev at scottdial.com> wrote:
>> On 1/1/2012 11:44 PM, Nick Coghlan wrote:
>>> I think it's a recipe for future maintenance hassles when someone
>>> adds a second statement to one of the clauses but doesn't add the
>>> braces. (The only time I consider it reasonable to leave out the
>>> braces is for one liner if statements, where there's no else
>>> clause at all)
>> 
>> Could you explain how these two cases differ with regard to
>> maintenance?
> 
> Sure: always including K&R style braces for compound statements (even 
> when they aren't technically necessary) means that indentation == 
> control flow, just like Python. Indent your additions correctly, and 
> the reader and compiler will agree on what they mean:
> 
> if (cond) { statement; } else { statement; addition;  /* Reader and
> compiler agree this is part of the else clause */ }
> 
> if (cond) statement; else statement; addition;  /* Uh-oh, should have
> added braces */
> 
> I've been trying to convince Benjamin that there's a reason "always 
> include the braces" is accepted wisdom amongst many veteran C 
> programmers (with some allowing an exception for one-liners), but he 
> isn't believing me, and I'm not going to go through and edit every 
> single one of his commits to add them.

FWIW, +1 to mandating braces-always (even for one liners):  the future
maintenance burden isn't worth the trouble of the exception.  In the days
when I did C / C++ / Java coding as my main gig, braceless code was
routinely a bug magnet *for the team*.


Tres.
- -- 
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk8CEpwACgkQ+gerLs4ltQ5vTwCbBjlToJ2yZh4Ra+tNkqMVIaLj
NfUAnjAfkDE0BPus1g33hd84tkGonUzd
=K1p9
-----END PGP SIGNATURE-----



More information about the Python-Dev mailing list