On Wed, May 02, 2007 at 01:53:01PM -0400, A.M. Kuchling wrote:
On Wed, May 02, 2007 at 04:42:09PM +0100, Michael Foord wrote:
Implicit string concatenation is massively useful for creating long strings in a readable way though:
This PEP doesn't seem very well-argued: "It's a common mistake to leave off a comma, and then scons complains that it can't find 'foo.cbar.c'." Yes, and then you say "oh, right!" and add the missing comma; problem fixed! The whole cycle takes about a minute. Is this really an issue worth fixing?
The 'cycle' can also generally be avoided via a few good habits-
sourceFiles = [ 'foo.c', 'bar.c', #...many lines omitted... 'q1000x.c']
That's the original example provided; each file is on a seperate line so it's a bit easier to tell what changed if you're reviewing the delta. That said, doing
sourceFiles = [ 'foo.c', 'bar.c', #...many lines omitted... 'q1000x.c', ]
is (in my experience) a fair bit better; you *can* have the trailing comma without any ill affects, plus shifting the ']' to a seperate line is lessy noisy delta wise for the usual "add another string to the end of the list".
Personally, I'm -1 on nuking implicit string concatenation; the examples provided for the 'why' aren't that strong in my experience, and the forced shift to concattenation is rather annoying when you're dealing with code limits (80 char limit for example)-
dprint("depends level cycle: %s: " "dropping cycle for %s from %s" % (cur_frame.atom, datom, cur_frame.current_pkg), "cycle")
Converting that over isn't hard, but it's a great way to inadvertantly bite yourself in the butt- triple quote isn't usually much of an option in such a case also since you don't want the newlines coming through.