Какова эквивалентность типа «питон» (& lt; name & gt ;, & lt; base & gt ;, & lt; dict & gt;) «quot; в с ++?

Хорошо, я встраиваю Python 3.3 в приложение C ++. Я хочу динамически создать класс Python на стороне C ++ точно так же, как если бы я делал следующее в Python:

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

Я знаю, что всегда могу импортировать модуль «builtins», но я пытаюсь избежать импорта на стороне c ++ в целом.

Спасибо!

4

Решение

Следующее, кажется, работает просто отлично:

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

Спасибо Заку за то, что он указал мне правильное направление!

1

Другие решения


По вопросам рекламы [email protected]