Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How is the __format__ method supposed to be used for int?

Tags:

python

int

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?

like image 719
Juanjo Conti Avatar asked Feb 01 '10 20:02

Juanjo Conti


2 Answers

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.

like image 152
Steven Kryskalla Avatar answered Nov 14 '22 16:11

Steven Kryskalla


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=''))
like image 4
Tor Valamo Avatar answered Nov 14 '22 15:11

Tor Valamo