tags:

views:

65

answers:

2

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?

A: 

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=''))
Tor Valamo
+3  A: 

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.

lost-theory
I'm using python 2.x
Juanjo Conti
@Juanjo, the link is to "What's New in Python 2.6" :)
orip