Arrays 如何在cython中创建并返回扩展数组?

Arrays 如何在cython中创建并返回扩展数组?,arrays,pointers,cython,pyobject,Arrays,Pointers,Cython,Pyobject,我想创建一个函数,它创建了一个二维数组cdef类 cdef PyObject* create(): cdef PyObject* cells[2][2] cdef Cell cell for i in range(2): for j in range(2): cell = Cell(i, j)# def class Cell: ... cells[i][j] = <PyObject*>cell

我想创建一个函数,它创建了一个二维数组
cdef类

cdef PyObject* create():
    cdef PyObject* cells[2][2]
    cdef Cell cell
    for i in range(2):
        for j in range(2):
            cell = Cell(i, j)# def class Cell: ...
            cells[i][j] = <PyObject*>cell
    return cells
cdef PyObject*create():
cdef PyObject*单元格[2][2]
cdef细胞
对于范围(2)中的i:
对于范围(2)内的j:
单元=单元(i,j)#定义类别单元:。。。
单元[i][j]=单元
返回单元
编译期间出错:
无法将类型“PyObject*[2][2]”分配给“PyObject*”


返回数组的正确方法是什么?

您正在尝试使用Cython直接生成C代码。请参阅以了解为什么您要求的C代码永远无法工作。您还有一个引用计数错误。如果我是你,我会使用列表或2D Numpy数组来代替dtype对象——这也非常简单