Python 3.x Python回调函数

Python 3.x Python回调函数,python-3.x,Python 3.x,寻找一个简单的解决方案(比qsort示例更简单)。我正在linux系统上使用Python3和GCC4.7。我创建了一个共享库,可以从Python调用该库中的C函数。我希望能够使用Python回调函数作为参数之一,从Python调用C库中的函数。这样,C库中的函数可以调用另一个Python函数。我已经看了几个例子(qsort例子和其他例子),但无法让它工作。有人能给我举一个非常简单的例子,说明如何从Python端和C端完成这项工作吗?谢谢。找到了答案。 Python: C: 当然,如果您想要返回值

寻找一个简单的解决方案(比qsort示例更简单)。我正在linux系统上使用Python3和GCC4.7。我创建了一个共享库,可以从Python调用该库中的C函数。我希望能够使用Python回调函数作为参数之一,从Python调用C库中的函数。这样,C库中的函数可以调用另一个Python函数。我已经看了几个例子(qsort例子和其他例子),但无法让它工作。有人能给我举一个非常简单的例子,说明如何从Python端和C端完成这项工作吗?谢谢。

找到了答案。 Python:

C:

当然,如果您想要返回值和参数,这会稍微复杂一些,但不会太复杂

import ctypes

mylib = ctypes.CDLL('sharedlib.so', use_errno=True)

...

CB_FUNC_TYPE = ctypes.CFUNCTYPE(None)

def cb():
    print('Called from C library.')

cb_func = CB_FUNC_TYPE(cb)
mylib.test(cb_func)
typedef void ( *callback_t )( void );
void test( callback_t cb )
{
    printf("Called from Python.\n");
    cb();
}