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