Я встраиваю Python в библиотеку C ++, которую делаю. Я хотел бы, чтобы пользователи могли передавать функции C в виде указателей функций PyObject * (fpFunc *) (PyObject *, PyObject *);
, чтобы я мог использовать эти функции во встроенном Python.
Итак, у меня есть указатель на функцию, и я знаю, что можно поместить эту функцию как метод модуля, используя структуру PyMethodDef
и передав ее в Py_InitModule ("модуль", ModMethods);
и, таким образом, получая модуль PyObject *
, из которого я могу легко брать функции.
Но что я действительно был бы признателен, так это возможность создавать эту функцию на лету без необходимости повторного создания каждого модуля время.
Я просмотрел документацию Python и некоторые заголовки Python, чтобы подумать о хакерском способе сделать это без реального успеха ... но мне интересно, есть ли более традиционный способ сделать это.
Насколько я понял, каждая функция принадлежит модулю, даже __ builtin __
, поэтому я бы требуется хотя бы один модуль.
Есть идеи, как этого добиться?