[Python-Dev] Replacement for print in Python 3.0 (original) (raw)
Steve Holden steve at holdenweb.com
Tue Sep 6 22:32:59 CEST 2005
- Previous message: [Python-Dev] Replacement for print in Python 3.0
- Next message: [Python-Dev] Replacement for print in Python 3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Guido van Rossum wrote:
On 9/6/05, Barry Warsaw <barry at python.org> wrote:
printf('$1 forgot to frobnicate the $2!\n', username, file.name, to=sys.stderr)
While that's a little less self-descriptive for a translator to deal with (who would only see the string, not the call site), it certainly looks nicer for a non-i18n application, and could certainly work for an i18n app too. It's a neat idea worth exploring. Is it worth doing this and completely dropping the %-based formats in Py3k? (Just asking -- it might be if we can get people to get over the shock of $ becoming first class ;-). Also, I think you posted in a separate article a syntactic proposal for including detailed formating in −vars.-vars. −vars.{varname:fmt} where 'varname' could be an identifier a la PEP 292 or possibly a positional argument. +1 I proposed ${varname%fmt} earlier but it prevents you to extend the varname syntax to arbitrary expressions, which I think is an extension that will get lots of requests. I would anticipate security issues with allowing general expressions: you are effectively allowing access to eval(). If a naiive programmer were to use unverified input as a format string unpleasant things could happen ... your call, but it seems dangerous to me. Remember C's printf has been the source of some very dangerous errors.
regards Steve
Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/
- Previous message: [Python-Dev] Replacement for print in Python 3.0
- Next message: [Python-Dev] Replacement for print in Python 3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]