python写代码生成脚本

为减少重复性工作,博主利用Python的Template模块创建了一段脚本,该脚本能够根据控制台输入自动生成包括model、hibernate映射、service接口及实现、dao接口和实现等各类文件。只需针对不同框架调整代码模板,即可方便快捷地进行代码生成。
摘要由CSDN通过智能技术生成

每天写的代码会有很多重复性工作,比如每个新功能的model、service、dao 类和接口的新建。

昨晚用python里Template写了一个自动生成的脚本,贴出代码分享。

import os
import sys

from string import Template

def produceModel(parameters):
	modelClass(parameters)
	defModelHBM(parameters)

def produceService(parameters):
	serviceInter(parameters)
	serviceImpl(parameters)

def produceDao(parameters):
	daoInter(parameters)
	daoImpl(parameters)
	
def modelClass(parameters):
	code = Template('''package\n
public class ${className} {\n
${attribute}
${methods}
}
''')
	name = parameters[0]	# class name
	argv2 = parameters[1]
	attribute = ""
	methods = ""
	properties = argv2.split(",")
	for x in range(len(properties)):
		prop = properties[x].split(":")
		propType = prop[1]
		propName = prop[0]
		attribute += "\tprivate " + propType + " " + propName + ";\n
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UVM(Universal Verification Methodology)是一种常用于硬件验证的方法学,在验证领域广泛应用。下面是一个用Python编写的简单的UVM生成脚本: ```python # -*- coding: utf-8 -*- class UVMGenerator: def __init__(self, module_name): self.module_name = module_name self.file = open(module_name + ".sv", "w") def generate(self): self.generate_header() self.generate_env() self.generate_agent() self.generate_monitor() self.generate_scoreboard() self.generate_test() self.generate_footer() self.file.close() def generate_header(self): header = '''`ifndef %s_SV_ `define %s_SV_ // UVM package import uvm_pkg::*; module %s_env; ''' self.file.write(header % (self.module_name.upper(), self.module_name.upper(), self.module_name)) def generate_env(self): env = ''' // Environment `uvm_component_utils(%s_env) class %s_env extends uvm_env; // ... endclass : %s_env ''' self.file.write(env % (self.module_name, self.module_name, self.module_name)) def generate_agent(self): agent = ''' // Agent `uvm_component_utils(%s_agent) class %s_agent extends uvm_agent; // ... endclass : %s_agent ''' self.file.write(agent % (self.module_name, self.module_name, self.module_name)) def generate_monitor(self): monitor = ''' // Monitor `uvm_component_utils(%s_monitor) class %s_monitor extends uvm_monitor; // ... endclass : %s_monitor ''' self.file.write(monitor % (self.module_name, self.module_name, self.module_name)) def generate_scoreboard(self): scoreboard = ''' // Scoreboard `uvm_component_utils(%s_scoreboard) class %s_scoreboard extends uvm_scoreboard; // ... endclass : %s_scoreboard ''' self.file.write(scoreboard % (self.module_name, self.module_name, self.module_name)) def generate_test(self): test = ''' // Test `uvm_component_utils(%s_test) class %s_test extends uvm_test; // ... endclass : %s_test `endif // %s_SV_ ''' self.file.write(test % (self.module_name, self.module_name, self.module_name, self.module_name.upper())) def generate_footer(self): pass if __name__ == "__main__": generator = UVMGenerator("my_module") generator.generate() ``` 以上代码生成的UVM框架包括环境(env)、代理(agent)、监控器(monitor)、得分板(scoreboard)和测试(test)等组件。可以根据需要进行自定义修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值