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