C++ 代码与 Python 的生成

2024-04-25 17:27:10 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

您可以查看一个从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,或者如果代码很小,您也可以手动生成代码。

相关问题 更多 >