Python和科学计算认证群组  - 讨论区

标题:想用Cython写个".pyd",要在类中定义一个属性v为"np.ndarray[np.int32_t, ndim=1]"

2012年04月16日 星期一 20:32

想用Cython写个".pyd",要在类中定义一个属性v为"np.ndarray[np.int32_t, ndim=1]"

,在pyx文件中如下:ABC.pyx

import numpy as np

cimport cython

cimport numpy as np

cdef class LampMatrix(object):

    cdef public int w,h,d

    cdef readonly np.ndarray[np.int32_t, ndim=1] v

    def __init__ (self,a=1,b=2,c=3)

        self.w=a

        self.h=b

        self.d=c

        self.v=np.array([self.w, self.h, self.d])

在把ABC.pyx编译成ABC.pyd时总是无法成攻。

求指点原因和写法。。。。。。

2012年04月17日 星期二 08:39

已经在下面的论坛解答:

http://hyry.dip.jp/tech/forum/thread.html/12

2012年04月17日 星期二 10:48

非常感谢你的指点,那个问题已解决,但还有一个差不多的问题,在类中定义一个属性pylist为python的"list" 和一个属性pyFile的python的"file".在pyx文件中如下:ABC.pyx

import numpy as np
cimport cython
cimport numpy as np
cdef class LampMatrix(object): 
    cdef public int w,h,d 
    cdef readonly np.ndarray v
    cdef readonly list pylist
    cdef
readonly file pyFile    

    def __init__(self,a=1,b=2,c=3): 
        self.w=a 
        self.h=b 
        self.d=c 
        self.v=np.array([self.w, self.h, self.d], dtype=np.int32)
        self.pylist=[]
        self.pyFile=open("F:\test.txt" ,'w')

同样在把ABC.pyx编译成ABC.pyd时总是无法成攻。
求指点原因和写法。。。。。。

2012年04月17日 星期二 12:32

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号