我有一个Cython函数,我想在其中传递一个序列化函数作为参数:
cdef my_serializer(serialization_func, data):
return serialization_func(data)我将要处理的所有序列化程序(msgpack,ujson)也都是C/cython函数。声明serialization_func以便Cython可以进行早期绑定的正确方法是什么?
发布于 2013-08-21 10:56:42
这是可行的,并且具有合理的可读性:
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)https://stackoverflow.com/questions/18348083
复制相似问题