在从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模板缩进良好?我的解决方案使用空的<% %>
并不美观。