反复写代码太累了,那么有什么可以自动写代码的吗?选择一个做一个公共组件选择两个使用模板生成代码选择三个在评论中告诉我:)python中有一个模板引擎Jinja2。但是一般看到它的时候都是介绍生成html模板的。事实上,它可以生成任何UTF-8代码。如何生成它?#代码生成器fromjinja2importTemplate#生成一个词tmpl='{{name}}'#模板tmp=Template(tmpl)#加载模板result=tmp.render(name='mikele')#输入变量,生成结果打印(result)#mikele将上述函数定义为函数defrender(tmpl,*args,**kwds):'''jinja2render'''vars=dict(*args,**kwds)tmp=Template(tmpl)returntmp.render(vars).strip()生成一个列表循环fruits=['apple','banana']tmpl_list="""{%forfruitinfruits%}{{fruit}}{%endfor%}"""result=render(tmpl_list,fruits=fruits)print(result)applebanana在%前面添加-以删除换行符tmpl_list="""{%forfruitinfruits-%}{{loop.index}}.{{fruit}}{%endfor%}"""print(render(tmpl_list,fruits=fruits))applebanana生成一个函数tmpl_fun="""def{{fun}}():pass"""print(render(tmpl_fun,fun='eat'))#resultdefeat():传递生成的类tmpl_class="""class{{model}}s:pass"""print(render(tmpl_class,model='Blog'))类博客:通过我端口模块,类...tmpl_import="""frompersonimport{{models|join(',')}}"""print(render(tmpl_import,models=['老师','学生']))frompersonimportTeacher,Studentjudgestmpl_if="""{%ifa>2%}{{a}}{%else%}#lessthan2{%endif%}"""print(render(tmpl_if,a=3))将代码保存到程序codes.pydefsave(data,filename='codes.py'):withopen(filename,'w')asf:f.write(data)save(data=result)有了这些,就可以组合起来自动生成一个程序。如果变量很少,可以使用模板文件。如果要将几个模板拼接在一起,直接这样定义模板变量即可。重新定义变量。让我们暂时停在这里。..更多功能请到Jinja2官网查看Jinja2模板。如果大家对Jinja2模板有什么疑问,可以留言,或者给我发邮件。原文网址:Michael的博客https://segmentfault.com/a/11...
