开发者

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

开发者 https://www.devze.com 2022-12-19 08:03 出处:网络
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? Whi

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=''))
0

精彩评论

暂无评论...
验证码 换一张
取 消