我为用户消息格式化了很多字符串。一个可能是这样的:Python string.format与内联管道
def sms(**kwargs):
return "Sorry {name}, but your payment was rejects. Please visit {url} and try again.".format(
name=kwargs.get('name'),
url=shorten_url(kwargs.get('url'))
)
如果我不需要重新格式化所有的关键字args来,我可以做到这一点,这是甜蜜的:
def sms(**kwargs):
return "Sorry {name}, but your payment was rejects. Please visit {url} and try again.".format(**kwargs)
,所以我希望,也许这将是可能的做这样的事情:
def sms(**kwargs):
return "Sorry {name}, but your payment was rejects. Please visit {url|shorten_url} and try again.".format(**kwargs)
所以我可以使用管道格式化字符串内联。这似乎不是什么大不了的事,但我正在写很多这些信息。
我注意到python string.vformat函数,但我不知道如果多数民众赞成我正在寻找。有任何想法吗?
也许你可以使用真正的模板引擎,如[jinja2](http://jinja.pocoo.org/docs/dev/)? – univerio
是的,我见过的很多Python模板系统都具有这样的功能。 jinja2以[自定义过滤器]的形式(http://jinja.pocoo.org/docs/dev/api/#custom-filters) – Marius
是的,我实际上正在离开jinja,转而使用功能组合和字符串连接。 [这是一个片段](http://pastebin.com/DbNptvTQ)我写的一些实际代码 - 我更喜欢这种方式。 – Chet