Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.017 X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; 'char': 0.07; 'postgres': 0.07; 'typed': 0.07; 'delimiter': 0.09; 'subject:string': 0.09; 'received:209.85.210.174': 0.13; 'received:mail- iy0-f174.google.com': 0.13; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'literal.': 0.16; 'recognized,': 0.16; 'wed,': 0.17; 'wrote:': 0.18; 'dec': 0.22; 'header:In-Reply- To:1': 0.22; 'literal': 0.23; 'string': 0.24; 'message- id:@mail.gmail.com': 0.28; 'pm,': 0.29; 'character.': 0.30; 'strings,': 0.30; 'url:9': 0.30; 'there': 0.33; 'to:addr:python- list': 0.34; 'it.': 0.34; 'character': 0.34; 'issue': 0.35; 'something': 0.35; 'else,': 0.37; 'but': 0.37; 'received:google.com': 0.37; 'allows': 0.38; 'received:209.85': 0.38; 'url:docs': 0.39; 'url:org': 0.39; 'johnson': 0.39; "it's": 0.40; 'received:209': 0.40; 'to:addr:python.org': 0.40; 'happens': 0.40; '2011': 0.61; 'your': 0.61; 'double': 0.61; 'subject:!': 0.67; 'why?': 0.77; 'occasion': 0.84; 'ultimate': 0.96 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=y9qR+xjYcSM2hrgZqbb4e5JA0TXZWHLVMIgFL/UjHyI=; b=GIrIXObZ88K077JP3Z18RS5Kvg2eVyLBzTI8RTa3xu1g4u3ZUd7uwUHNLfmCffEFH4 Ek3kO5y9t115jeLGduP5lZ+9lpn7WE6Fkrrmkh/MmBuRLocJ0yqBwC5qwl44//zOxRj7 PEoe9CKIEUnIR1gDVHHM6KkNiJ3qSg/Wyzn3o= MIME-Version: 1.0 In-Reply-To: References: <280841b8-8674-4c1d-9a82-28982340a4b8@v24g2000yqk.googlegroups.com> Date: Wed, 28 Dec 2011 18:47:44 +1100 Subject: Re: Py-dea: Streamline string literals now! From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 21 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1325058468 news.xs4all.nl 6874 [2001:888:2000:d::a6]:41464 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:18108 On Wed, Dec 28, 2011 at 4:34 PM, Rick Johnson wrote: > I am also thinking that ANY quote char is a bad choice for string > literal delimiters. Why? Well because it is often necessary to embed > single or double quotes into a string literal. Postgres allows dollar-delimited strings, which get around this issue somewhat. http://www.postgresql.org/docs/9.1/static/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING But for most strings, it simply makes sense to use a quote character. Most strings don't need both ' and " in them. You cannot pick one character to be your ultimate delimiter, because there will always be occasion to embed it. (If nothing else, what happens when you emit code?) You want the delimiter to be easily typed and recognized, and that guarantees that it'll be something that's going to want to be emitted. It's necessary to have multiple options, or escaping. ChrisA