How is the __format__ method supposed to be used for int?
I saw there was a __format__
method but help(int.__format__
) doesn't provide any help.
I also know you're not sup开发者_如何学编程pose to call a __method__
directly. When is this method called? Which is its argument?
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=''))
精彩评论