【发布时间】:2015-07-17 02:53:41
【问题描述】:
在从 Mako 模板自动生成代码的用例中,我希望有一个很好的语法来删除前导空格(类似于在行尾使用 \ 删除换行符)。
以下代码
from mako.template import Template
# 1) Bad
print(Template(r'''
void myfunction(\
%for arg_name, arg_type in arguments:
${', ' if loop.index else ''}${arg_type} ${arg_name}\
%endfor
)
''').render(arguments=[('string', 'a'), ('int', 'b')]))
# 2) Good but ugly
print(Template(r'''
void myfunction(\
%for arg_name, arg_type in arguments:
<% %>${', ' if loop.index else ''}${arg_type} ${arg_name}\
%endfor
<%%>)
''').render(arguments=[('string', 'a'), ('int', 'b')]))
将打印这些结果:
void myfunction( a string , b int )
void myfunction(a string, b int)
我想要后者的输出——那么有没有更好的语法同时仍然保持我的 Mako 模板很好地缩进?我使用空 <% %> 的解决方案并不完美。
【问题讨论】:
标签: templates whitespace mako removing-whitespace