Как вызвать функцию Python по имени из C-API? - PullRequest
2 голосов
/ 02 июля 2011

Из c-api я хотел бы вызвать функцию python по имени. Затем я буду вызывать функцию со списком объектов Python в качестве аргументов.

Мне не ясно из документации Python, как я мог бы получить объект "Callable" из основного интерпретатора Python.

Любая помощь оценивается в:

  1. Получение адреса из функции
  2. Вызов функции с моим PythonObject в качестве аргументов.

Я использую серии Python 2.x для своей разработки.

1 Ответ

3 голосов
/ 02 июля 2011

По сути, вы используете Python C API, чтобы получить модуль, в котором содержится функция, а затем запросите словарь модуля для этой функции.Это более или менее то же самое, что внутренняя среда выполнения Python, когда ваш код Python вызывает функцию откуда-то.

Соответствующие функции из API для просмотра: PyImport_ImportModule, PyModule_GetDict, PyDict_GetItem иPyObject_CallXXX семейство функций.

...