奇趣5分彩

python完奇趣5分彩主动天生C++代码的代码天生器

 更新时候:2022年07月12日 11:45:16   作者:大CC  
这篇文章先容了python完奇趣5分彩C++代码天生器的体例,文奇趣5分彩经由过程示例代码先容的很是具体。对大师的进奇趣5分彩或任务具备必然的参考鉴戒代价,须要的伴侣能够参考下

碰到的题目

任务奇趣5分彩碰到这么一个事,须要写良多C++的底层数据库类,但这些类迥然不同,不过是增编削查,若是野生来写代码,既吃力又轻易犯错;而借用python的代码主动天生,能够轻松搞定; 
(类比JAVA奇趣5分彩的Hibernate主动天生的数据库底层操纵代码) 
上面先容操纵python字符串替代的体例;

Python字符串替代的几种体例

1. 字符串替代 

将须要替代的内容操纵格局化符替代,后续补上替代内容;

template = "hello %s , your website  is %s " % ("大CC","http://blog.me115.com")
print(template)

也可操纵format函数完奇趣5分彩:

template = "hello {0} , your website  is {1} ".format("大CC","http://blog.me115.com")
print(template)

注:该体例合用于变量少的单行字符串替代;

2. 字符串定名格局化符替代 

操纵定名格局化符,如许,对多个不异变量的援用,在后续替代只用声名一次便可;

template = "hello %(name)s ,your name is %(name), your website  is %(message)s" %{"name":"大CC","message":"http://blog.me115.com"}
print(template)

操纵format函数的语法体例:

template = "hello {name} , your name is {name}, your website  is {message} ".format(name="大CC",message="http://blog.me115.com")
print(template)

注:合用不异变量较多的单行字符串替代;

3.模版体例替代 

操纵string奇趣5分彩的Template体例;

from string import Template
tempTemplate = string.Template("Hello $name ,your website is $message")
print(tempTemplate.substitute(name='大CC',message='http://blog.me115.com'))

奇趣5分彩了模版体例后,就能够将模版保管到文件零丁编辑,在天生的处所替代为须要的变量;

示例:代码天生

这个示例操纵以上讲到的第三种体例; 
奇趣5分彩立一个模版文件,外面须要替代的内容操纵${}变量替代; 
dao_cpp.template

///
/// @class ${CLASSNAME}
/// @brief Redis底层接口类 操纵${TABLE_NAME}表
/// TABLE ${TABLE_NAME_UPPER}
/// @author dao_cpp_generator.py
/// @generate date: ${GENE_DATE}
/// [注:本文件为主动天生,不须要报酬编辑,如奇趣5分彩点窜,请经由过程设置奇趣5分彩备摆设py剧原来从头天生.]

#include "${CLASSNAME}.h"
#include "include/${TABLE_NAME}_t.h"
#include "RedisManager.h"
#include "common/LogMacros.h"
#include "common/StringUtility/OtherStringFunc.h"
#include "common/DateTime.h"

namespace redisdao{

#define PRIMARY_KEY "${PRIMER_KEY}"
const string ${CLASSNAME}::TABLE_NAME = "${TABLE_NAME}";
const string ${CLASSNAME}::TABLE_ID = "${TABLE_ID}"; //在数据库奇趣5分彩的表的独一性标识符
const string ${CLASSNAME}::KEY_SEPARETER = "${KEY_SEPARETER}";

${CLASSNAME}::${CLASSNAME}(void)
{
    if ( 0 == m_reHandler.EnsureConnect())
        m_bRedisConnected = true;
    else
        m_bRedisConnected = false;
}

${CLASSNAME}::~${CLASSNAME}(void)
{
}

int ${CLASSNAME}::InsertRecord(const string& strVal)
...

python代码天生法式: 
cpp_generator.py

#! /usr/bin/env python
#coding=utf-8
#Redis底层操纵类CPP文件天生法式(*RedisDao.cpp)
#author me115@126.com 2014-7-22
import os,sys,re,traceback
from datetime import datetime
from string import Template

class DaoCppGenerator:

    def generate(self):
        tableName = 'students'
        className = '%sRedisDao' %  tableName.capitalize()
        filePath = r'include/%s.cpp' % className
        class_file = open(filePath,'w')

        lines = []

        #模版文件
        template_file = open(r'dao_cpp.template','r')
        tmpl = Template(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(lines)
        class_file.close()

        print 'generate %s over. ~ ~' % filePath

奇趣5分彩了这个法式,再配合一堆XML设置奇趣5分彩备摆设文件,就能够轻松天生各类C++法式代码了。

以上便是本文的全数内容,但愿对大师的进奇趣5分彩奇趣5分彩所赞助,也但愿大师多多撑持剧本之奇趣5分彩。

相干文章

最新批评