Python 将cython函数传递给cython函数

Python 将cython函数传递给cython函数,python,function-pointers,cython,Python,Function Pointers,Cython,我有一个Cython函数,我想在其中传入一个序列化函数作为参数: cdef my_serializer(serialization_func, data): return serialization_func(data) 我将要处理的所有序列化程序(msgpack、ujson)也是C/cython函数。声明序列化功能的正确方法是什么?这样Cython就可以进行早期绑定了?这很有效,而且可读性也很好: ctypedef void (*SERIALIZATION_FUNC)(char *d

我有一个Cython函数,我想在其中传入一个序列化函数作为参数:

cdef my_serializer(serialization_func, data):
    return serialization_func(data)

我将要处理的所有序列化程序(msgpack、ujson)也是C/cython函数。声明序列化功能的正确方法是什么?这样Cython就可以进行早期绑定了?

这很有效,而且可读性也很好:

ctypedef void (*SERIALIZATION_FUNC)(char *data)

cdef void my_serializer(SERIALIZATION_FUNC func, char *data):
    func(data)
或者,如果您真的想使用python对象作为参数和返回值

ctypedef object (*SERIALIZATION_FUNC)(object data)

cdef my_serializer(SERIALIZATION_FUNC func, data):
    return func(data)

如果
serialization\u func
是一个函数,为什么要对它调用一个方法来进行序列化?你完全正确,dumps()不应该在那里。编辑