C++中python "type(<name>, <bases>, <dict>)" 的等价是什么?

4 投票
1 回答
594 浏览
提问于 2025-04-18 05:04

好的,我正在把Python 3.3嵌入到一个C++应用程序中。我想在C++这边动态创建一个Python类,就像我在Python中这样做:

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

我知道我可以导入“builtins”模块,但我想尽量避免在C++这边进行导入。

谢谢!

1 个回答

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);
}

感谢Zack给我指明了方向!

撰写回答