I saw there was a __format__ method but help(int.__format__) doesn't provide any help.
I also know you're not suppose to call a __method__ directly. When is this method called? Which is its argument?
I saw there was a __format__ method but help(int.__format__) doesn't provide any help.
I also know you're not suppose to call a __method__ directly. When is this method called? Which is its argument?
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=''))
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.