小编Ale*_* Vl的帖子

cython使用cinit()

我有:

      cdef class BaseClass():
           def __cinit__(self,char* name):
               print "BaseClass __cinit__()"
               #...
           def __dealloc__():
               print "BaseClass __dealloc__()"
               #...
      cdef class DerClass(BaseClass):
           def __cinit__(self,char* name,int n):
               print "DerClass __cinit__()"
               #...
           def __dealloc__():
               print "DerClass __dealloc__()"
               #...
Run Code Online (Sandbox Code Playgroud)

当我在cyhton中调用DerClass时,会自动调用BaseClass的construcor,它必须打印的是:

       BaseClass __cinit__()
       DerClass __cinit__()
       DerClass __dealloc__()
       BaseClass __dealloc__()
Run Code Online (Sandbox Code Playgroud)

但事实并非如此,我称之为DerClass('Ciao').为什么发生,所以,我怎么能避免调用CINIT的BaseClass的.谢谢!

cython

7
推荐指数
2
解决办法
6527
查看次数

cython多次回归

我想包装这个简单的函数:

       double foo(int a, int* b)
       {
          double div = ((double) a) / ((double) *b);
          *b = a + (*b);
          return div;
        } 
Run Code Online (Sandbox Code Playgroud)

我想要做的是这样的:

      cdef pyfoo(int c, int d):
         res = foo(c, &d);
         return (res, d)  
Run Code Online (Sandbox Code Playgroud)

我想返回一个值列表,但是使用cdef它不起作用它给了我erroe:AttributeError没有属性pyfoo如果不使用cdef我使用def或cpdef它可以工作.

使用cdef在cython中有一些方法吗?

python cython

3
推荐指数
1
解决办法
2663
查看次数

标签 统计

cython ×2

python ×1