使用字符串格式化程序进行转换

Conversion with string formatter

我正在使用 Python 2.7.6。今天无意中发现了这个。

我的意思是通过格式化程序将整数转换为字符串。像这样:

a = 50
b = "%d" % (a)

然而,我这样做了

a = 50
b = "%s" % (a)

这也 运行 很好。我不明白这是怎么回事。此处是否发生双重转换?

准确地说,%s如何接受一个整数并且仍然不抛出任何错误?

"%s" % (a)调用a__str__方法。

您不需要使用 "%d" % (a) 将整数转换为字符串,只需执行 str(a)

但是,使用 "%d" % (a) 将确保 a 可转换为整数,例如"%d" % "hello world" 将不起作用。

来自doc

The conversion types are:
...
's' | String (converts any Python object using str()).

所以基本上它调用 str(a),正如 horns 所说。