[Python-3000] PEP 30XZ: Simplified Parsing (original) (raw)

Giovanni Bajo rasky at develer.com
Mon Apr 30 14:32:22 CEST 2007


(-CC python-dev)

On 30/04/2007 5.29, Jim Jewett wrote:

Rationale for Removing Explicit Line Continuation

A terminal "" indicates that the logical line is continued on the following physical line (after whitespace). Note that a non-terminal "" does not have this meaning, even if the only additional characters are invisible whitespace. (Python depends heavily on visible whitespace at the beginning of a line; it does not otherwise depend on invisible terminal whitespace.) Adding whitespace after a "" will typically cause a syntax error rather than a silent bug, but it still isn't desirable. The reason to keep "" is that occasionally code looks better with a "" than with a () pair. assert True, ( "This Paren is goofy") But realistically, that paren is no worse than a "". The only advantage of "" is that it is slightly more familiar to users of C-based languages. These same languages all also support line continuation with (), so reading code will not be a problem, and there will be one less rule to learn for people entirely new to programming.

I was in favor of one of the alternatives that were proposed here: line continuation through indentation:

a = 123 *
    (12 + 4) / 8

assert True,
     "No goofy paren" +
     ", dude"

... and don't tell me that you need a character there because using just indentation is hard to read :)

Even if you don't want to champion this solution in your PEP, you should at least list it among the alternatives.

Giovanni Bajo Develer S.r.l. http://www.develer.com



More information about the Python-3000 mailing list