реализация обратного вызова между Python и C - PullRequest
1 голос
/ 25 октября 2010

Я обернул некоторый код на C, используя SWIG, чтобы использовать его в качестве библиотеки Python.

В этих рамках некоторые написанные мной коды Python вызывают функцию C, которая возвращает строку.Однако для создания строки функция C требует ранжирования, генерация которого я реализовала в Python.Как бы я мог реализовать это с помощью обратных вызовов?

Я вижу это как следующий многоступенчатый процесс.

1) Python создает экземпляр объекта C: import test_Objects #test_Objects - это файл C, который был упакован C = test_objects.my_class ()

2) Вызовите соответствующий метод для объекта my_class,которые возвращают строку: txt_1 = "string1" txt_2 - "string2" result = C.sorted_string (txt_1, txt_2)

2.1) Я хочу, чтобы sorted_string вызывал следующую функцию python, которая возвращает отсортированный список.

   def sorted_string([my_list]):
       .....
       .....
       return your_list

2.2) Sorted_string будет использовать список для генерации результата.

Как мне реализовать шаг 2.1?

Ответы [ 2 ]

0 голосов
/ 25 октября 2010

Это не относится к вашему вопросу, но вот пример, который я спросил: swig-pass-аргумент-к-python-callback-функция

Надеюсь, это полезно.

0 голосов
/ 25 октября 2010

Функции PyObject_Call*() можно использовать для вызова функции или метода Python из C.

...