[Python-Dev] transitioning from % to {} formatting (original) (raw)
M.-A. Lemburg mal at egenix.com
Thu Oct 1 11:37:26 CEST 2009
- Previous message: [Python-Dev] PEP 389: argparse - new command line parsing module
- Next message: [Python-Dev] transitioning from % to {} formatting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Eric Smith wrote:
Martin v. Löwis wrote:
Steven Bethard wrote:
There's a lot of code already out there (in the standard library and other places) that uses %-style formatting, when in Python 3.0 we should be encouraging {}-style formatting.
I don't agree that we should do that. I see nothing wrong with using % substitution.
I agree with Martin.
Both approaches have their ups and downs, but forcing users to move from %-formatting to .format()-formatting will just frustrate them: having to convert several thousand such (working) uses in their code with absolutely no benefit simply doesn't look like a good way to spend your time.
In addition to the code changes, such a move would also render existing translations of the %-formatted string templates useless.
It's a maintenance burden. There are several outstanding bugs with it, admittedly not of any great significance. I've been putting time into fixing at least one of them. When Mark and I did short-float-repr, at least half of my time was consumed with %-formatting, mostly because of how it does memory management.
Why not allow both and use .format() for those cases where %-formatting doesn't work too well ?
On the plus side, %-formatting is (and always will be) faster than str.format(). Its very limitations make it possible for it to be fast.
I'd note that PEP 3101 calls str.format() a replacement for %-formatting, not an alternate mechanism to achieve the same end.
I think that's a wording we should change.
-- Marc-Andre Lemburg eGenix.com
Professional Python Services directly from the Source (#1, Oct 01 2009)
Python/Zope Consulting and Support ... http://www.egenix.com/ mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
::: Try our new mxODBC.Connect Python Database Interface for free ! ::::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/
- Previous message: [Python-Dev] PEP 389: argparse - new command line parsing module
- Next message: [Python-Dev] transitioning from % to {} formatting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]