Guido van Rossum wrote:
> While we're not copying .NET *exactly*, most of the basic ideas are
> very similar; the discussion at this point is mostly about the
> type-specific mini-languages. My proposal is to use *exactly the same
> mini-language as used in 2.x %-formatting* (but without the '%'
> character), in particular: {0:10.3f} will format a float in a field of
> 10 characters wide with 3 digits behind the decimal point, and {0:08x}
> will format an int in hex with 0-padding in a field 8 characters wide.
> For strings, you can write {0:10.20s} to specify a min width of 10 and
> a max width of 20 (I betcha you didn't even know you could do this
> with %10.20s :-). The only added wrinkle is that you can also write
> {0!r} to *force* using repr() on the value. This is similar to %r in
> 2.x. Of course, non-numeric types can define their own mini-language,
> but that's all advanced stuff. (The concept of type-specific
> mini-languages is straight from .NET though.)Just to follow up on what Guido said: The current language of the PEP uses a formatting mini-language which is very close to the conversion specifiers of the existing '%' operator, and which is backwards compatible with it. So essentially if you understand printf-style formatting, you can use what you know. It may be that additional formatting options can be added in a future release of Python, however they should (a) be backwards compatible with what we have now, (b) demonstrate a compelling need, and (c) require their own PEP. In other words, I'm not going to add any more creeping features to the current PEP. Except for updating the examples and adding some clarifications that people have asked for, it's *done*. I admit that part of this whole syntax discussion was my fault - I did ask for a bit of a bikeshed discussion and I got way more than I bargained for :) -- Talin _______________________________________________ Python-3000 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com
