Python indentation (3 spaces)
Peter J. Holzer
hjp-python at hjp.at
Sun Oct 14 18:33:45 EDT 2018
On 2018-10-15 09:06:11 +1100, Chris Angelico wrote:
> On Mon, Oct 15, 2018 at 8:56 AM Marko Rauhamaa <marko at pacujo.net> wrote:
> > Chris Angelico <rosuav at gmail.com>:
> > > Tabs for indentation have semantic meaning. Top-level has zero tabs.
> > > One indentation level is represented by one tab. Two indentation
> > > levels? Two tabs. It's about as perfect a representation as you could
> > > hope for.
> >
> > That *could* be the situation. However, it is trumped by an older
> > convention whereby the indentation levels go as follows:
> >
> > 0:
> > 1: SPC SPC
> > 2: SPC SPC SPC SPC
> > 3: SPC SPC SPC SPC SPC SPC
> > 4: TAB
> > 5: TAB SPC SPC
> > 6: TAB SPC SPC SPC SPC
> > 7: TAB SPC SPC SPC SPC SPC SPC
> > 8: TAB TAB
That's not using tabs for indentation, that's using tabs for compressing
spaces (somebody already mentioned that in this thread).
> I've literally NEVER come across this as a convention. Not a single
> file that I have ever worked with has used it. Where is this
> convention from?
It's something vi does by default, and apparently emacs as well.
In the 1970's saving space by replacing sequences of 8 spaces
with tabs seemed lika a good idea.
There are workarounds in vi(m), but I'm not sure if you can get rid of
that behaviour completely. I'm sure it is possible in emacs.
> > Your scheme also is ad hoc in that it doesn't follow its logic to other
> > ASCII control characters. Why not use VT to separate methods? Why not
> > use US to separate operators from operands? Why not use RS to separate
> > the operands of optional arguments? Why not use GS to separate logical
> > blocks of code? After all, those schemes would allow people to
> > personalize the visual representation of more aspects of the source
> > code.
>
> You're most welcome to use VT between methods.
I sometimes use FF so separate sections of code in longer files. Had to
stop that in Django projects because it messes up the stack traces.
> Not sure what you mean by US, RS, and GS,
Unit separator, record separator, group separator (and FS is file
separator). I think they were intended for a CSV-like file format, but I
have never seen them in use (outside of my own projects).
hp
--
_ | Peter J. Holzer | we build much bigger, better disasters now
|_|_) | | because we have much more sophisticated
| | | hjp at hjp.at | management tools.
__/ | http://www.hjp.at/ | -- Ross Anderson <https://www.edge.org/>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-list/attachments/20181015/8fe931b4/attachment.sig>
More information about the Python-list
mailing list