我对python3格式设置选项非常熟悉,但是之前没有遇到过{0!s}
选项。
特别是我遇到的格式如下:
'{0!s}.xml'.format('VID/' + file)
据我所知,这只是一种根据this explanation渲染str(arg)
和我的情况str('VID/')
的输出的方法。
所以输出将类似于:
例如VID/000.xml
。
由于在这种情况下,我的参数已经是str
了,所以当我省略整个格式化参数(使用{}
而不是{0!s}
时,看不到任何区别)。
我做过的其他实验省略了前导0,后者产生相同的结果,而用另一个数字(如1)替换则会产生错误:
IndexError:元组索引超出范围
有人可以解释此格式化参数的情况吗?我什么时候应该使用它?
答案 0 :(得分:1)
这是价值转换:https://pyformat.info/#conversion_flags
{0!s}.xml
表示“对于第0个参数,通过调用__str__
方法来获取要放入格式化字符串中的字符串”
您也可以使用{0!r}
来调用__repr__
方法