On 24 Feb 2014 07:39, "Antoine Pitrou" <solipsis at pitrou.net> wrote: > > On Sun, 23 Feb 2014 12:42:59 -0800 > Ethan Furman <ethan at stoneleaf.us> wrote: > > On 02/23/2014 03:33 AM, Antoine Pitrou wrote: > > > On Sat, 22 Feb 2014 17:56:50 -0800 > > > Ethan Furman <ethan at stoneleaf.us> wrote: > > >> > > >> ``%a`` will call :func:``ascii()`` on the interpolated value's :func:``repr()``. > > >> This is intended as a debugging aid, rather than something that should be used > > >> in production. Non-ascii values will be encoded to either ``\xnn`` or ``\unnnn`` > > >> representation. > > > > > > Why is "%a" here? I don't remember: was this discussed before? > > > "Intended as a debugging aid" sounds like a weak justification to me. > > > > https://mail.python.org/pipermail/python-dev/2014-January/131808.html > > > > The idea being if we offer %a, folks won't be tempted to abuse __bytes__. > > Which folks are we talking about? This sounds gratuitous. It's a harm containment tactic, based on the assumption people *will* want to include the output of ascii() in binary protocols containing ASCII segments, regardless of whether or not we consider their reasons for doing so to be particularly good. If %a exists, then the path of least resistance to doing this only affects the format string, and it can handle arbitrary types (except bytes under -b and -bb). By contrast, if %a doesn't exist, then it becomes more attractive to use %s in the format string and define an ASCII assuming __bytes__ implementation on a custom type. That latter scenario is substantially more problematic, since __bytes__ implementations assuming ASCII compatibility is categorically wrong, while embedding an ASCII representation in a binary protocol that includes ASCII compatible segments is merely a bit strange. Cheers, Nick. > > Also, I don't understand what debugging is supposed to be in the > context of bytes formatting. You print debugging output to a text > stream, not a bytes stream. And you certainly *don't* print debugging > output into a wire protocol. > > Regards > > Antoine. > > > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20140224/00b32898/attachment-0001.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4