How is the __format__ method supposed to be used for int?
It's used for Py3k's new string formatting scheme.
You can find more info here:
http://docs.python.org/whatsnew/2.6.html#pep-3101-advanced-string-formatting
You are right that it isn't called directly. It's called by str.format
or the new format
builtin.
It's used when you pass an integer to the format() function. The details elude me, as I can't seem to get it to tell me what exactly the argument is. (Edit: see lost-theory's link)
Oh, and it only works when the integer is the only argument. If you pass a tuple to format, then the tuple.__format__ function is called, and the int.__str__ or something.
'{0}'.format(4)
str(4.__format__(format_spec=''))