在c ++中,python“type(<name>,<bases>,<dict>)”的等价性是什么?</dict> </bases> </name>

时间:2014-05-02 01:11:15

标签: python c++ boost types equivalence

好吧,我将python 3.3嵌入到c ++应用程序中。我想在c ++端动态创建一个python类,就像我在python中执行以下操作一样:

my_type = type("MyType", (object,), dict())

我知道我总是可以导入&#34; builtins&#34;模块,但我试图避免在c ++方面进口。

谢谢!

1 个答案:

答案 0 :(得分:1)

以下似乎工作正常:

PyObject *type(const char *name, boost::python::tuple bases, boost::python::dict dict) {
    return PyType_Type.tp_new(&PyType_Type,
        Py_BuildValue("sOO", name, bases.ptr(), dict.ptr()), NULL);
}

感谢扎克指出我正确的方向!