我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python怎么实现自动生成C++代码的代码生成器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python怎么实现自动生成C++代码的代码生成器

这篇文章主要讲解了“python怎么实现自动生成C++代码的代码生成器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么实现自动生成C++代码的代码生成器”吧!

遇到的问题

工作中遇到这么一个事,需要写很多C++的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错;而借用python的代码自动生成,可以轻松搞定; 
(类比JAVA中的Hibernate自动生成的数据库底层操作代码) 
下面介绍使用python字符串替换的方法;

Python字符串替换的几种方法

1. 字符串替换 

将需要替换的内容使用格式化符替代,后续补上替换内容;

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

也可使用format函数完成:

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中的Template方法;

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

有了模版方法后,就可以将模版保存到文件单独编辑,在生成的地方替换为需要的变量;

示例:代码生成

这个示例使用以上讲到的第三种方法; 
建立一个模版文件,里面需要替换的内容使用${}变量替换; 
dao_cpp.template

////// @class ${CLASSNAME}/// @brief Redis底层接口类 操作${TABLE_NAME}表/// TABLE ${TABLE_NAME_UPPER}/// @author dao_cpp_generator.py/// @generate date: ${GENE_DATE}/// [注:本文件为自动生成,不需要人为编辑,若有修改,请通过配置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}"; //在数据库中的表的唯一性标识符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-22import os,sys,re,tracebackfrom datetime import datetimefrom string import Templateclass 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

感谢各位的阅读,以上就是“python怎么实现自动生成C++代码的代码生成器”的内容了,经过本文的学习后,相信大家对python怎么实现自动生成C++代码的代码生成器这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python怎么实现自动生成C++代码的代码生成器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python怎么实现自动生成C++代码的代码生成器

这篇文章主要讲解了“python怎么实现自动生成C++代码的代码生成器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么实现自动生成C++代码的代码生成器”吧!遇到的问题工作中遇
2023-07-02

Mybatis实现自动生成增删改查代码

这篇文章主要为大家详细介绍了Mybatis如何实现自动生成增删改查代码的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
2023-01-11

PHP生成Flash动画的实现代码

PHP本身不直接支持Flash动画的生成,但可以通过使用第三方库或工具来实现。以下是一个使用SWFTools库生成Flash动画的示例代码:```php// 创建一个空的Flash动画对象$movie = new SWFMovie();//
2023-08-14

自动生成代码controller tool怎么使用

这篇文章主要介绍了自动生成代码controller tool怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇自动生成代码controller tool怎么使用文章都会有所收获,下面我们一起来看看吧。con
2023-06-30

python生成excel的实例代码

本文实例为大家分享了python生成excel的具体代码,供大家参考,具体内容如下#_*_coding:utf-8_*_import MySQLdb import xlwt from datetime import datetimedef
2022-06-04

如何进行C++代码的代码生成?

如何进行C++代码的代码生成?代码生成是软件开发中的一个重要环节,可以提高开发效率和代码质量。而对于C++开发来说,代码生成更是具有重要意义。本文将介绍如何进行C++代码的代码生成,帮助开发者提高开发效率和代码质量。使用模板库使用模板库是进
如何进行C++代码的代码生成?
2023-11-02

二维码生成Java实现代码

本文实例为大家分享了二维码生成Java实现代码,供大家参考,具体内容如下package com.yihaomen.barcode;import java.awt.BasicStroke;import java.awt.Graphics;im
2023-05-31

GoLang与Java各自生成grpc代码怎么实现

本篇内容介绍了“GoLang与Java各自生成grpc代码怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.背景由于公司的日志系统使
2023-07-05

PHP实现生成二维码的代码怎么写

本文小编为大家详细介绍“PHP实现生成二维码的代码怎么写”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP实现生成二维码的代码怎么写”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言为了满足用户渠道推广分析和
2023-06-30

golang运行时动态生成代码怎么实现

在Go语言中,可以使用`go/ast`和`go/printer`包来实现动态生成代码。首先,你需要使用`go/ast`包来创建一棵抽象语法树(AST),表示你要生成的代码。你可以使用`ast.NewIdent()`创建标识符,`ast.N
2023-10-26

java代码自动生成的方法是什么

在Java中,有各种工具和框架可以用于生成代码。其中最常见的是使用代码生成工具,如MyBatis Generator和Apache Velocity等。这些工具可以根据数据库表结构或其他配置文件生成相应的Java代码,包括实体类、DAO接口
java代码自动生成的方法是什么
2024-02-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录