实现Python和C之间的回调

时间:2010-10-25 16:08:32

标签: python c callback swig

我使用SWIG包装了一些C代码,将其用作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 :(得分:0)

PyObject_Call*()函数可用于从C调用Python函数或方法。

答案 1 :(得分:0)

这不是特定于您的问题,但这是我问的一个示例:swig-passing-argument-to-python-callback-function

希望这有用。