是否可以使用类似于字符串模板safe_substitute()功能的高级字符串格式化方法进行部分字符串格式化?
safe_substitute()
例如:
s = '{foo} {bar}' s.format(foo='FOO') #Problem: raises KeyError 'bar'
您可以通过覆盖映射将其欺骗为部分格式:
import string class FormatDict(dict): def __missing__(self, key): return "{" + key + "}" s = '{foo} {bar}' formatter = string.Formatter() mapping = FormatDict(foo='FOO') print(formatter.vformat(s, (), mapping))
印刷
FOO {bar}
当然,此基本实现仅在基本情况下正确运行。