使用字符串格式化程序进行转换
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 所说。
我正在使用 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 所说。