A modest indentation proposal

Skip Montanaro skip at pobox.com
Fri Nov 30 00:35:20 CET 2001

    Erann> Personally I've found [indentation-based block structure] to be
    Erann> less of a problem than I thought it would be, but annoying
    Erann> nonetheless.  It also IMO makes the language unsuitable for
    Erann> mission-critical applications.  It's just too easy to screw up
    Erann> indentation (particularly when cutting and pasting large blocks
    Erann> of code) without realizing it.

As has been demonstrated many a time, you're more likely to screw up a C
block by omitting braces:

    if (cond)
        x = 1;
        y = 1;

than you will screw up a Python block.  In fact, it's such an insidious
problem in C code that many groups mandate that all blocks use { & }, even
for one-statement blocks.  In Python, if it looks right, it is right.  In
practice, this has not proven to be a problem.  I've been using Python as my
primary programming language essentially full-time since 1994 with never a
problem in this regard.  I don't know.  Maybe I'm just weird.  I prefer to
think not though.

    Erann> I propose to use a semicolon at the end of a line to denote the
    Erann> end of a block, e.g.:

    Erann> for i in l:        # Colon signals beginning of block
    Erann>   foo()
    Erann>   baz(); boff()    # Semicolon separating statements works as usual
    Erann>   bar();           # Semicolon at end of line signals end of block
    Erann> biff()

In my book trailing single-character punctuation should be avoided wherever
possible.  (That goes for single-element tuple literals as well.)

I suggest you just use

    # end if
    # end while
    # end for

as your block closers and apply Tools/scripts/pindent.py

    Erann> This convention is 100% backwards-compatible with current
    Erann> practice, that is, code written using this convention runs with
    Erann> no problems in Python as it currently stands.

Not it's not.  Semicolons can legitimately be used to end a statement now.

was-that-troll-spit-i-just-stepped-in?-ly, y'rs,

Skip Montanaro (skip at pobox.com - http://www.mojam.com/)

More information about the Python-list mailing list