__format__ 方法如何用于 int 类型?

8 投票
2 回答
18799 浏览
提问于 2025-04-15 18:45

我看到有一个 __format__ 方法,但是用 help(int.__format__) 查找时没有找到任何帮助信息。

我还知道不应该直接调用 __method__ 这种方法。那么这个方法是什么时候被调用的呢?它的参数是什么?

2 个回答

4

当你把一个整数传给format()函数时,就会用到这个东西。不过具体的细节我记不太清楚,因为我找不到它到底是什么参数的说明。(编辑:可以看看lost-theory的链接)

哦,对了,这个只在整数是唯一的参数时才有效。如果你把一个元组传给format,那么就会调用元组的__format__函数,而不是整数的__str__之类的。

'{0}'.format(4)
str(4.__format__(format_spec=''))
7

这是用来支持Python 3的新字符串格式化方式。

你可以在这里找到更多信息:

http://docs.python.org/whatsnew/2.6.html#pep-3101-advanced-string-formatting

你说得对,它并不是直接调用的。它是通过 str.format 或者新的 format 内置函数来调用的。

撰写回答