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

标签 python c++ boost types equivalence

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

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

我知道我总是可以导入“builtins”模块,但我一般会尽量避免在 C++ 端导入。

谢谢!

最佳答案

以下似乎工作得很好:

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 为我指明了正确的方向!

关于python - c++中python "type(<name>, <bases>, <dict>)"的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23419254/

相关文章:

python - 如何根据 "identifier columns"和 pandas 数据框中的附加条件替换值?

python - 如何固定弹球的运动方向并使其碰撞

python - 数据帧的丢弃百分比 [pandas]

python - 如何在 Unix 上运行的 python 脚本输出中显示 ANSI 颜色

c++ - 所有n个矩形的交集面积

c++ - 引用模板的语法(别名?)

c# - 由非托管 (C++) COM 服务器实例化的托管 (C#) 控件在 Windows 更新后损坏

c++ - boost::variant 和函数重载决议

c++ - 如何使用 CodeBlocks 安装 Boost 库?

c++ - 使用 boost::log 输出用户定义的结构