自动生成c语言代码,python 自动生成代码
这篇文章介绍了大蟒实现C代码生成器的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
遇到的问题
工作中遇到这么一个事,需要写很多C的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错;而借用大蟒的代码自动生成,可以轻松搞定;
(类比爪哇岛中的冬眠自动生成的数据库底层操作代码)
下面介绍使用大蟒字符串替换的方法;
Python字符串替换的几种方法
1. 字符串替换
将需要替换的内容使用格式化符替代,后续补上替换内容;
模板=您好%s,您的网站是% s“%(”大抄送, http://blog.me115.com )
打印(模板)
也可使用格式函数完成:
template=hello {0},您的网站是{1}。格式(大抄送, http://blog.me115.com )
打印(模板)
注:该方法适用于变量少的单行字符串替换;
2. 字符串命名格式化符替换
使用命名格式化符,这样,对于多个相同变量的引用,在后续替换只用申明一次即可;
模板=你好%(名称)s,你的名字是%(姓名),你的网站是%(消息)s“% {”名称“:”大抄送,消息 : http://博客。我115。com }
打印(模板)
使用格式函数的语法方式:
模板=你好{name},你的名字是{name},你的网站是{邮件} .格式(名称=大抄送,message=http://blog.me115.com )
打印(模板)
注:适用相同变量较多的单行字符串替换;
3.模版方法替换
使用线中的模板方法;
从字符串导入模板
tempTemplate=string .模板("你好$name,你的网站是$message”)
打印(临时模板。替换(名称=大CC ,message=http://blog.me115.com ))
有了模版方法后,就可以将模版保存到文件单独编辑,在生成的地方替换为需要的变量;
示例:代码生成
这个示例使用以上讲到的第三种方法;
建立一个模版文件,里面需要替换的内容使用${}变量替换;
道_cpp .模板
///
///@class ${CLASSNAME}
///@brief Redis底层接口类操作${TABLE_NAME}表
///TABLE ${TABLE_NAME_UPPER}
///@作者道_cpp_generator.py
///@生成日期: ${GENE_DATE}
///[注:本文件为自动生成,不需要人为编辑,若有修改,请通过配置巴拉圭脚本来重新生成。]
# include“$ { class name } .” h
# include include/$ { TABLE _ NAME } _ t . h
#include RedisManager.h
#include common/LogMacros.h
# include common/string utility/otherstringfunc。 h
#include common/DateTime.h
命名空间redisdao
#定义主键${PRIMER_KEY}
const string $ { class NAME } : TABLE _ NAME=" $ { TABLE _ NAME } ";
const string $ { class name } : TABLE _ ID=" $ { TABLE _ ID } ";//在数据库中的表的唯一性标识符
const string $ { class name } : KEY _ sepa reter= $ { KEY _ sepa reter } ;
$ { class name } : $ { class name }(无效)
{
if (0==m_reHandler .EnsureConnect())
m _ bRedisConnected=true
其他
m _ bRedisConnected=false
}
$ { class name } : ~ $ { class name }(void)
{
}
int $ { class name } :插入记录(常量字符串strVal)
.
大蟒代码生成程序:
cpp_generator.py
#!/usr/bin/env python
#编码=utf-8
#Redis底层操作类卡片打印处理机(卡片打印处理器的缩写)文件生成程序(*RedisDao.cpp)
#作者me115@126.com 2014年7月22日
导入操作系统、系统、资源、回溯
从日期时间导入日期时间
从字符串导入模板
类别DaoCppGenerator:
定义生成(自身):
tableName=学生
类名= % sRedisDao % tablename。资本()
文件路径=r include/% s . CPP %类名
class_file=open(文件路径, w )
lines=[]
#模版文件
template _ file=open(r Dao _ CPP。模板, r )
tmpl=模板(template_file.read()
#模版替换
lines.append(tmpl.substitute(
CLASSNAME=className,
TABLE_NAME=tableName,
TABLE _ NAME _ UPPER=tablename。UPPER(),
GENE_DATE=datetime.now()。strftime(“% Y-% m-% d % h :% m :% S”),
TABLE_ID=115 ,
EXPIRE_DATE=06JUN14 ))
# 0.将生成的代码写入文件
class_file.writelines(行)
class_file.close()
“打印”生成%s结束。~ ~ % filePath
有了这个程序和一堆XML配置文件,就可以轻松生成各种C程序代码。
这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。