在工作构建大型项目时,通常需要根据序列化数据结构生成代码,可以使用python template包根据模板自动化创建代码。
首先,不用template对模板代码进行替换
c_start_str = '''
{ClassName}:{ClassName}(const int a)
{{
if ( a == 10)
{{
cout << "right"<< endl;
}}
}}
'''
if __name__ == "__main__":
c_content_new = []
name = "A"
c_content_new.append(c_start_str.format(ClassName = name))
for i in c_content_new:
print(i)
输出结果可以看出已经实现了A替换ClassName变量的效果,由于变量使用{}标识,在代码中实际的括号要使用{{ 、}} 标明
A:A(const int a)
{
if ( a == 10)
{
cout << "right"<< endl;
}
}
使用Template构建代码
from string import Template
c_start_str = Template('''
${ClassName}:${ClassName}(const int a)
{
if ( a == 10)
{
cout << "right"<< endl;
}
}
''')
if __name__ == "__main__":
c_content_new = []
name = "A"
c_content_new.append(c_start_str.substitute(ClassName = name))
for i in c_content_new:
print(i)
使用Template时,使用${}对变量替换即可,输出结果同上