扩展Python模板字符串
是否可以扩展,以便向标识符添加方法: 默认情况下,我可以替换简单变量:扩展Python模板字符串,python,template-strings,Python,Template Strings,是否可以扩展,以便向标识符添加方法: 默认情况下,我可以替换简单变量: from string import Template t = Template("${noun}ification") t.substitute(dict(noun='Egg')) # Output: 'Eggification' 但我希望使用自定义方法扩展标识符(例如,as_b): t=Template(“${noon.as_b}化”)#所需输出:'Eggification' 我知道我可以很容易
from string import Template
t = Template("${noun}ification")
t.substitute(dict(noun='Egg')) # Output: 'Eggification'
但我希望使用自定义方法扩展标识符(例如,as_b
):
t=Template(“${noon.as_b}化”)#所需输出:'Eggification'
我知道我可以很容易地用做类似的事情,但是否可以像上面那样使用模板字符串?
我不能使用格式化的字符串文字,因为它在脚本、JSON文件或任何包含大括号的文本中都不起作用
本质上,我正在寻找一些能够在格式化字符串文本灵活性中提供模板字符串语法的东西。这不是一个直接的答案,但我建议不要使用模板字符串 如果您使用的是Python 3.6或更新版本,请使用f字符串:
def bold(t):
return f"<b>{t}</b>"
noun = 'Egg'
print(f"{bold(noun)}ification")
def粗体(t):
返回f“{t}”
名词='Egg'
印刷品(粗体(名词)}
运行时:
<b>Egg</b>ification
鸡蛋化
如果您希望使用更强大的模板机制,我强烈推荐。确实可以做到这一点,但它似乎没有使用内置的字符串
模块。其他有用的参考是和。为什么你不直接将
t
实例化为模板(${noon}化”)
?@vmonteco如果名词
是一个列表,我可以写模板(${nowns.as}”)
;然后输出是一个大的无序列表。想象一下${nomes.as_ul}
在HTML模板中,我不需要一些奇怪的{%forn in nomes%}{{n} {%endfor%}
但是方法as_ul
会处理好它,很好,很干净。你想用这些来实现什么?web应用程序?@vmonteco目前只是好奇/研究,但最终是一个模板引擎。即使它们现在不是那么重要。
<b>Egg</b>ification