2024-04-25 17:27:10 发布
网友
您可以查看一个从Python代码生成C++代码的项目Shedskin。
取决于你的理由是什么,这可能是一个有点毫无意义的撒旦小狗指出。
如果您只想使用标准的Python内容,那么可以尝试制作使用Python 3样式字符串格式的模板文件。例如,类模板可能如下所示:
{className}::{className}() {{ }} {className}::~{className}() {{ }} {className}::{className}(const {className}& other) {{ }} {className}& {className}::operator=(const {className}& other) {{ return *this; }}
那么您的Python代码非常简单:
d = {} d['className'] = 'MyCPlusPlusClassName' with open(yourTemplateFile, 'r') as ftemp: templateString = ftemp.read() with open(generatedFile, 'w') as f: f.write(templateString.format(**d))
当然,您可以使用相同的技巧在“className”旁边添加许多其他字段。如果你不需要像条件代码生成这样的东西,你可以从这样简单的事情中得到很多好处。
恐怕您找不到一个内置的解决方案,它将您的特定xml或python文件转换成您所需的“开箱即用”输出。
您必须自己实现解析、数据处理和输出。不过,并不是全部由您自己完成;这里有一些关于解析和输出的指针。
Python附带了两个不同的XML解析器(SAX and DOM-向下滚动查看一些示例)。要读取源文件,必须使用其中一个。
为了更容易地生成输出,您可以使用模板库,例如StringTemplate,或者如果代码很小,您也可以手动生成代码。
您可以查看一个从Python代码生成C++代码的项目Shedskin。
取决于你的理由是什么,这可能是一个有点毫无意义的撒旦小狗指出。
如果您只想使用标准的Python内容,那么可以尝试制作使用Python 3样式字符串格式的模板文件。例如,类模板可能如下所示:
那么您的Python代码非常简单:
当然,您可以使用相同的技巧在“className”旁边添加许多其他字段。如果你不需要像条件代码生成这样的东西,你可以从这样简单的事情中得到很多好处。
恐怕您找不到一个内置的解决方案,它将您的特定xml或python文件转换成您所需的“开箱即用”输出。
您必须自己实现解析、数据处理和输出。不过,并不是全部由您自己完成;这里有一些关于解析和输出的指针。
Python附带了两个不同的XML解析器(SAX and DOM-向下滚动查看一些示例)。要读取源文件,必须使用其中一个。
为了更容易地生成输出,您可以使用模板库,例如StringTemplate,或者如果代码很小,您也可以手动生成代码。
相关问题 更多 >
编程相关推荐