【发布时间】:2010-05-24 23:38:53
【问题描述】:
寻找有关使用 gettext() 时使用哪种字符串替换技术的最佳实践建议。还是所有技术都同样适用?
我能想到至少 3 种字符串技巧:
1) 基于经典“%”的格式:
"我的名字是 %(name)s" % locals()
2) 基于 .format() 的格式:
"我的名字是 {name}".format(locals())
3) string.Template.safe_substitute()
导入字符串 template = string.Template("我的名字是 ${name}") template.safe_substitute(locals())
string.Template 技术的优势在于,带有拼写错误的变量引用的翻译字符串仍然可以产生可用的字符串值,而其他技术无条件地引发异常。 string.Template 技术的缺点似乎是无法自定义变量的格式(填充、对齐、宽度等)。
【问题讨论】:
标签: python string gettext string-formatting