{0!s}作为格式参数的含义

时间:2019-04-17 14:10:30

标签: python python-3.x

我对python3格式设置选项非常熟悉,但是之前没有遇到过{0!s}选项。
特别是我遇到的格式如下:

'{0!s}.xml'.format('VID/' + file)

据我所知,这只是一种根据this explanation渲染str(arg)和我的情况str('VID/')的输出的方法。

所以输出将类似于: 例如VID/000.xml

由于在这种情况下,我的参数已经是str了,所以当我省略整个格式化参数(使用{}而不是{0!s}时,看不到任何区别)。

我做过的其他实验省略了前导0,后者产生相同的结果,而用另一个数字(如1)替换则会产生错误:

  

IndexError:元组索引超出范围

有人可以解释此格式化参数的情况吗?我什么时候应该使用它?

1 个答案:

答案 0 :(得分:1)

这是价值转换:https://pyformat.info/#conversion_flags

{0!s}.xml 

表示“对于第0个参数,通过调用__str__方法来获取要放入格式化字符串中的字符串”

您也可以使用{0!r}来调用__repr__方法