Alternate indent proposal for python 3000
ewertman at gmail.com
Sun Apr 20 20:37:12 CEST 2008
On Apr 20, 1:29 pm, "Gabriel Genellina" <gagsl-... at yahoo.com.ar>
> En Sun, 20 Apr 2008 13:42:05 -0300, Matthew Woodcraft <matth... at chiark.greenend.org.uk> escribió:
> > An alternative scheme for describing the block structure could be
> > useful in other cases, though. For example, if you wanted to support
> > putting snippets of Python in configuration files, or spreadsheet
> > cells.
> > [...] If someone wrote a library for this and it proved popular, I expect it
> > would be considered for the standard library.
> There is "pindent.py" in the Tools/scripts directory:
> # ... When called as "pindent -r" it assumes its input is a
> # Python program with block-closing comments but with its indentation
> # messed up, and outputs a properly indented version.
> # A "block-closing comment" is a comment of the form '# end <keyword>'
> # where <keyword> is the keyword that opened the block ...
> def foobar(a, b):
> if a == b:
> a = a+1
> elif a < b:
> b = b-1
> if b > a: a = a-1
> # end if
> print 'oops!'
> # end if
> # end def foobar
> Gabriel Genellina
That's actually not a lot different than what you have to do now in a
web page.. It still seems overcomplicated though. I'm not sure why
this is worse:
def foobar(a, b):
if a == b:
a = a+1;
elif a < b:
b = b-1;
if b > a:
a = a-1;
It's just ultimately whitespace insensitive. Whether that's a good or
bad design is a debate that can be argued either way, but other
languages do it, and it's handy sometimes. I agree that it makes it
much easier to produce illegible code. Developing for a browser is
arguably annoying and hackish enough, without having to stick in
comments and such to enforce indenting.
More information about the Python-list