However, they are a single logical level of indentation -- I come
down fairly solidly on the "tabs" side of the "tabs vs. spaces"
argument.

My bet is that the problem is this: some people like to format their
code in ways that don't work well when you're using tabs. For example,
they might want to call a function like this (note spaces):

some_func(foo=1,
          bar=2,
          baz=3)

instead of:

some_func(
    foo=1,
    bar=2,
    baz=3)

For continued indenting statements such as this, I tend to use the coding convention used at my first job out of college (Computer Sciences Corp...for better or worse) which just indents two levels:

  def some_func(foo=1,
  <tab><tab>bar=2,
  <tab><tab>baz=3):
  <tab>do_something(foo)
  <tab>do_other_stuff(bar)

examples for things besides function calls. Don't you ever find cases
where you'd like to add in an extra space or two to make things line
up nicely?

I have occasionally (okay, "very rarely") use the "mixed tab+space" method of indentation for continued lines if I want them lined up nicely:

  <tab><tab>if (foo == bar and
  <tab><tab>    baz > frob and
  <tab><tab>    fred != barney):
  <tab><tab><tab>do_something()
  <tab><tab><tab>do_more()

This scheme insures that the visual alignment for the continued-line matches up, even if the tab-stop is changed. The positioning of the indented block (the do_* bit) floats inconveniently with relation to the continued text, with pessimal cases being indistinguishable from the continued lines (which is why I generally opt not to use this unless it has great benefits in code clarity). By regularly indenting continued lines for containing blocks (if, while, etc) by two tabs, the continuation stands out from the contained code regardless of my tab stops.

 I can set my editor (vim in this case) to show tabs as
as many spaces as I want.  I usually have this set to 4, but
sometimes 1 or 2.

Just curious: why would you want to do that? In my experience, once my
eyes got used to 4-space indents, everything else looks either too
little or too much. :)

It totally depends on the project -- I like the condensed nature of 2sp/tab for code sharing on mailing lists (and tend to copy out of vim with tabs expanded to 2 spaces for pasting into emails) and for my own visual preference. If it's code that I'd expect anybody else to view, I tend to use 4sp/tab to keep my lines below 80 chars per line with the tabs taken into consideration.

I guess I change up my indent enough that sometimes 2 seems just right or too small, and sometimes 4 seems just right or too large.

-tkc




--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to