On Mon, 15 Dec 2008 08:29:31 -0800, cmdrrickhun...@yaho.com wrote: > I've been trying to search through the years of Python talk to find an > answer to this, but my Googlefu is weak. > > In most languages, I'll do something like this > > xmlWriter.BeginElement("parent"); > ----xmlWriter.BeginElement("child"); > ----------xml.Writer.Characters("subtext"); ----xmlWriter.EndElement(); > xmlWriter.EndElement(); > > Where the dashes are indentation (since some newsgroup handlers don't do > tabs well). XML writing is just an example. > > In general, I'm using indentation to show logical flow through code. > Python's choice to give semantic meaning to whitespace prevents me from > doing such things. What was once reserved for logical use is now used > syntactically. In 90% of cases, its not needed, and whitespace > significance seems to be pretty effective. In that last 10%, however, > I've been frustrated many times. > > I've been using python for a few years, and gotten around this in one > way or another, but now I want to get other who work with me to pick up > Python. All newbies to Python have trouble with the idea of whitespace > sensitivity, but how can I convince them that "it just works better" > when I have this construct which I want to use but can't. > > Has anybody found a way to emulate this behavior? I've often done it by > opening an expression for the whole thing, but there's a lot of tasks > where a single expression just isn't sufficient (such as things with > assignment). > > PS. In my opinion the solution would be to have the option of entering a > "whitespace insensitive" mode which uses C style {} and ;. The token to > enter it could be as complicated as you want (in fact, it may make sense > to make it complicated to discourage use unless it's really > advantageous). I'd sugest {{ and }} or something bigger like {={ } =}. > Only two problems: 1) I'm sure it would offend Guido's sense of language > aesthetics 2) I'm sure the idea has been hashed over on this newsgroup > to death... hence prefering a workaround instead.
It's possible (although no real python programmers would do it) to use a code preprocessor that would search for special marked sections in which spacing would be ignored and punctuations or end-of-block marker would be used to determine spacings. -- http://mail.python.org/mailman/listinfo/python-list