[Python-3000] Proposed changes to PEP3101 advanced string formatting -- please discuss and vote! (original) (raw)

Patrick Maupin pmaupin at gmail.com
Wed Mar 14 01:50:27 CET 2007


On 3/13/07, Josiah Carlson <jcarlson at uci.edu> wrote:

Sounds far too implicit to me. I would much prefer a completely different syntax. Having just had a patch that implements Windows shell variable expansion as var,var, var,{var} and %var% (the last being new), I can't help but think that %var% would be a better alternate explicit syntax than the 'space follows {' implicit syntax you are offering.

I think the syntax could be considered 'subtle', but I'm not really sure about how it is 'implicit' -- the rules of engagement are quite explicit. In any case, the current PEP has a % format specifier operator, so you would need a way to have % inside your %%. There may be some other issues with having the "transition to markup" and "transition back to text" characters be the same, but I can't think of them at the moment.

[snip] > Feature: Automatic search of locals() and globals() for name lookups > if no parameters are given.

-1 for the obvious 'Explicit is better than implicit'.

Out of curiosity, do you feel that eval()'s use of this is somehow different? I haven't been able to figure out a real difference yet.

> (Description of comments deleted)

-1 The user can use the parser/compiler to get this behavior for free. (" text " #your comment here "more text").format(...)

I think breaking up strings this way can be really ugly. (I might be alone here, but OTOH if I am, I'm not sure why triple-quoted strings were invented :) I also think there may be use cases which involve, e.g. strings read in from a separate text file. It might be handy to have comments in that other file, and it would be nice not to require a separate user-code parser to strip them out.

Thanks for the feedback. For some reason, my post hasn't garnered that much attention yet. Do I need to post it on python-dev or c.l.p., or are people just really busy with other things, or have I breached some etiquette I don't yet understand?

Thanks, Pat



More information about the Python-3000 mailing list