..........
I'm still stuck on Python 2, and while I can understand the controversy ("It breaks 
my Python 2 code!"), this seems like the right thing to have done.  In Python 2, 
unicode is an add-on.  One of the big design drivers in Python 3 was to make unicode the 
standard.

The idea behind repr() is to provide a "just plain text" representation of an object.  In P2, 
"just plain text" means ascii, so escaping non-ascii characters makes sense.  In P3, "just 
plain text" means unicode, so escaping non-ascii characters no longer makes sense.


unfortunately the word 'printable' got into the definition of repr; it's clear that printability is not the same as unicode at least as far as the print function is concerned. In my opinion it would have been better to leave the old behaviour as that would have eased the compatibility.

The python gods don't count that sort of thing as important enough so we get the mess that is the python2/3 split. ReportLab has to do both so it's a real issue; in addition swapping the str - unicode pair to bytes str doesn't help one's mental models either :(

Things went wrong when utf8 was not adopted as the standard encoding thus requiring two string types, it would have been easier to have a len function to count bytes as before and a glyphlen to count glyphs. Now as I understand it we have a complicated mess under the hood for unicode objects so they have a variable representation to approximate an 8 bit representation when suitable etc etc etc.

Some of us have been doing this long enough to remember when "just plain text" 
meant only a single case of the alphabet (and a subset of ascii punctuation).  On an 
ASR-33, your C program would print like:

MAIN() \(
        PRINTF("HELLO, ASCII WORLD");
\)

because ASR-33's didn't have curly braces (or lower case).

Having P3's repr() escape non-ascii characters today makes about as much sense 
as expecting P2's repr() to escape curly braces (and vertical bars, and a few 
others) because not every terminal can print those.

.....
I can certainly remember those days, how we cried and laughed when 8 bits became popular.
--
Robin Becker

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to