[Python-Dev] PEP 414 - Unicode Literals for Python 3 (original) (raw)

Chris McDonough chrism at plope.com
Mon Feb 27 19:01:02 CET 2012


On Mon, 2012-02-27 at 12:41 -0500, R. David Murray wrote:

On Mon, 27 Feb 2012 09:05:54 -0800, Ethan Furman <ethan at stoneleaf.us> wrote: > Martin v. Löwis wrote: > > Am 26.02.2012 07:06, schrieb Nick Coghlan: > >> On Sun, Feb 26, 2012 at 1:13 PM, Guido van Rossum <guido at python.org> wrote: > >>> A small quibble: I'd like to see a benchmark of a 'u' function implemented in C. > >> Even if it was quite fast, I don't think such a function would bring > >> the same benefits as restoring support for u'' literals. > > > > You claim that, but your argument doesn't actually support that claim > > (or I fail to see the argument). > > Python 2.6 code: > this = u'that' > > Python 3.3 code: > this = u('that') > > Not source compatible, not elegant. (Even though 2to3 could make this > fix, it's still kinda ugly.)

Eh? The 2.6 version would also be u('that'). That's the whole point of the idiom. You'll need a better counter argument than that.

The best argument is that there already exists tons and tons of Python 2 code that already does:

u'that'

Needing to change it to:

u('that')

  1. Requires effort on the part of a from-Python-2-porter to service the aesthetic and populist goal of not having an explicit but redundant-under-Py3 literal syntax that says "this is text".

  2. Won't atually meet the aesthetic goal, as it's uglier and slower under both Python 2 and Python 3.

So the populist argument remains.. "it's too confusing for people who learn Python 3 as a new language to have a redundant syntax". But we've had such a syntax in Python 2 for years with b'', and, as mentioned by Armin's PEP single-quoted vs. triple-quoted strings forever.

I just don't understand the pushback here at all. This is such a nobrainer.



More information about the Python-Dev mailing list