【发布时间】:2013-06-24 20:40:34
【问题描述】:
Python 的 Formatter class“允许您使用与内置 format() 方法相同的实现来创建和自定义自己的字符串格式化行为”。既然可以做
>>> '{}'.format(3.14)
'3.14'
和
>>> format(3.14, '')
'3.14'
我希望以下内容也能正常工作:
>>> string.Formatter().format('{}', 3.14)
(…)
KeyError: ''
是否有任何标准方法可以使用 Formatter 处理这种非常常见且简单的格式化字符串?或者必须在表现得更像 Python 的format() 之前自定义格式化程序?这在robust way(线程安全,...)中真的可行吗?
【问题讨论】:
-
我的猜测是格式化程序不需要理解
{},因为这在 Python 2.6 和 3.0 中无效(而是需要{0})。 -
问题Should string.Format是否也支持自动编号?在bugs.python.org/issue5237#msg83559中讨论
-
你引用的线程很有趣。自 2009 年开始以来,这方面似乎没有太大变化……如果得到证实,我会接受这个作为对问题的回答。 :)
标签: python formatting formatter