Serhiy Storchaka added the comment:

> Why do strings cache their UTF-8 encoding?

Mainly for compatibility with existing C API. Common way to parse function 
arguments in implemented in C function is to use special argument parsing API: 
PyArg_ParseTuple, PyArg_ParseTupleAndKeywords, or PyArg_Parse. Most format 
codes for Unicode strings returned a C pointer to char array. For that encoded 
Unicode strings should be kept somewhere at least for the time of executing C 
function. As well as PyArg_Parse* functions doesn't allow user to specify a 
storage for encoded string, it should be saved in Unicode object. That is not 
new to PEP 393 or Python 3, in Python 2 the Unicode objects also keep cached 
encoded version.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25709>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to