在python中使用自定义占位符标记 string.format()
语境
- python 2.7
string.format()
- 允许自定义占位符语法的替代方法
问题
我们要在Python str.format()中使用自定义占位符定界符
string.format()
功能强大,但是没有本地支持修改占位符分隔符。string.format()
使用非常常见的花括号,并导致定界符冲突string.format()
默认的解决方法是加倍分隔符,这可能很麻烦。
解
我们编写了一个扩展本地python的自定义类
str.format()
string.Formatter
使用自定义类扩展本机python- 配置
string.format()
为支持任意定界符占位符语法 - 允许其他增强功能,例如自定义格式器和过滤器
例001:演示自定义ReFormat
类的使用
我们写了一个
ReFormat
扩展python的自定义类str.format()
import custom class
import ReFormat
prepare source data
odata = { “fname” : “Planet”,
“lname” : “Earth”,
“age” : “4b years”,
}format output using .render()
method of custom ReFormat class
vout = ReFormat.String(“Hello <%fname%> <%lname%>!”,odata).render()
print(vout)
陷阱
- 需要扩展类
str.format()
- 不能替代成熟的兼容沙盒的模板解决方案



