Python“允许您使用与内置Formatter class ()方法相同的实现来创建和自定义您自己的字符串格式化行为”。因为一个人可以
>>> '{}'.format(3.14)
'3.14'和
>>> format(3.14, '')
'3.14'我希望下面的代码也能正常工作:
>>> string.Formatter().format('{}', 3.14)
(…)
KeyError: ''有没有什么标准的方法可以用格式化程序来处理这个非常普通和简单的格式化字符串呢?或者必须在格式化程序表现得更像Python的format()之前进行自定义?这在robust way (线程安全,…)中真的可行吗??
发布于 2013-06-24 19:37:25
Python2.6/3.0中的新型字符串格式化的原始实现不允许空的{}模板。允许它们的更改被记录为issue 5237: Allow auto-numbered replacement fields in str.format() strings。在那一页上,message 83559 from Eric V. Smith思考了string.Format是否也应该支持自动编号的问题(我猜他指的是string.Formatter),并得出了反对的结论。
在issue 13598: string.Formatter doesn't support empty curly braces "{}"中已经提出了一个补丁。
https://stackoverflow.com/questions/17272297
复制相似问题