用字符串格式化程序转换

时间:2015-02-13 13:18:25

标签: python string python-2.7 string-formatting

我正在使用Python 2.7.6。我今天偶然遇到了这个。

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

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

但是,我这样做了

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

哪个也运行良好。我无法理解这是怎么回事。双重转换发生在这里吗?

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

2 个答案:

答案 0 :(得分:3)

"%s" % (a)调用__str__的{​​{1}}方法。

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

然而,使用str(a)将确保a可转换为整数,例如"%d" % (a)无效。

答案 1 :(得分:0)

来自doc

  

转换类型为:
  ...
  ' S' | String(使用str()转换任何Python对象。)

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