首页 > 解决方案 > {0!s} 作为格式化参数的含义

问题描述

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

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

据我所知,这只是一种渲染输出的方式str(arg),在我的情况下str('VID/'),根据这个解释

所以输出会是这样的: VID/000.xml例如。

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

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

IndexError:元组索引超出范围

有人能解释一下这个格式化参数是怎么回事吗?我什么时候应该使用它等?

标签: pythonpython-3.x

解决方案


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

{0!s}.xml 

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

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


推荐阅读