应用Python写的一个简单的Class代码生成器


平时苦于写一下C++类或数据结构时时,每个类都需要四五个与类相关的构造、析构函数。每次重复的写些类名和变量名,费时费力。若将这些函数省略,代码风格不好,又不安全。

经常见一些代码生成工具,只需定义类名,变量,函数,就能生成比较完善的代码。格式统一,漂亮且安全。不过这些工具都与自己的框架或编译系统相关,通用性不是很好。

最近想学习下python的应用,就尝试自己写一个简单的Class代码生成器。按照一般的思路:设计漂亮易用的界面,生成类型定义的xml或其他格式的数据文件,然后再翻译成代码。这个工作量和设计复杂程序对我这个python新手短时间内是不可能的。按照2/8原则,设计一个最简单易用的界面,尽可能的完成一些重复性的劳动。

期望的 工具使用方式:

只需在一个文本文件,如declare.txt中,第一行写入类名,然后以下每行写入 类型名和变量名即可。

生成的代码,包括类的声明和各种构造和析构函数。

如:declare.txt文件中

Test 

int a

float b

string c

需要生成的目标代码:

class Test
{
    Test();
    Test(int _a, float _b, const string &_c);
    Test(const Test &rhs);
    Test& operator = (const Test &rhs);
    ~Test();

public: // private:
    int a;
    float b;
    string c;
};


Test::Test()
: a()
, b()
, c()
{
}

Test::Test(int _a, float _b, const string &_c)
: a(_a)
, b(_b)
, c(_c)
{
}

Test::Test(const Test &rhs)
{
 *this = rhs;
}

Test& Test::operator = (const Test &rhs)
{
 if (&rhs != this)
 {
         a = rhs.a;
         b = rhs.b;
         c = rhs.c;
 }

 return *this;
}

Test::~Test()
{
}

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容