On Sat, 20 Dec 2008 17:55:35 -0800, Aaron Brady wrote: > On Dec 20, 7:38 pm, Steven D'Aprano <st...@remove-this- > cybersource.com.au> wrote: >> Instead of just whinging, how about making a suggestion to fix it? Go >> on, sit down for an hour or ten and try to work out how a BINARY >> OPERATOR like % (that means it can only take TWO arguments) can deal >> with an arbitrary number of arguments, *without* having any special >> cases. >> >> Go on. Take your time. I'll be waiting. > > Hi, not to take sides, but, there is a possibility. > > This behavior is currently legal: > >>>> "%i %%i" % 0 % 1 > '0 1' > > So, just extend it. (Unproduced.) > >>>> "%i %i" % 0 % 1 > '0 1'
Errors should never pass silently, unless explicitly silenced. You have implicitly silenced the TypeError you get from not having enough arguments for the first format operation. That means that you will introduce ambiguity and bugs. "%i %i %i %i" % 5 % 3 %7 Here I have four slots and only three numbers. Which output did I expect? '%i 5 3 7' '5 %i 3 7' '5 3 %i 7' '5 3 7 %i' Or more likely, the three numbers is a mistake, there is supposed to be a fourth number there somewhere, only now instead of the error being caught immediately, it won't be discovered until much later. (BTW, if you want that behaviour, you should look at the string module.) -- Steven -- http://mail.python.org/mailman/listinfo/python-list