我爲用戶消息格式化了很多字符串。一個可能是這樣的: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