我没有使用cython的经验,只是开始学习它。我正在尝试将模块作为参数传递给结构,但我不知道如何? 这是我在Jupyter-notebook中尝试的示例代码:
%load_ext cython
%%cython
cdef class A:
pass
cdef struct person:
int num
object info
cdef person someone
p1.idd = 94113
p1.info = A()
我很乐意帮助我
实际上我正在尝试用我自己设计的结构 替换我的代码中的python dict
列表,因为当我阅读here时,它是不可能的使用带有python dicts的nogil
如果有人能找到某种方法来克服问题以尽可能快的速度运行,那将非常感激。
感谢。
答案 0 :(得分:1)
可以进入C定义的唯一内容 - cdef
描述的内容 - 是C类型。
如果您想继续使用结构,那么这样的事情将是一个开始:
ctypedef struct Info:
char[256] address
char[256] name
<..>
ctypedef struct person:
int num
Info info
cdef class Person:
cdef person my_struct
为了简单起见,既然您的目标是定义一个类并在Python中使用该对象,那么只需创建一个cdef类并让Cython为您生成结构。
cdef class Person:
cdef char[256] name
cdef char[256] address
cdef int num
<..>