On 2016-06-21 08:17, Jeroen Demeyer wrote:
But hang on, are you sure that this works? The C functions for cdef and
cpdef functions have a different signature: cpdef functions have a
__pyx_skip_dispatch argument while cdef functions don't have such an
argument.

Answering my own question, it seems that Cython uses different vtab entries for the cdef and cpdef functions, where the cdef one calls the cpdef one with __pyx_skip_dispatch=0.

The only difference with my proposal is that the cdef method cannot automatically be overridden by a def method. But that can be solved by

cdef class MyClass(object):
    cdef foo(self):
        return (<object>self).foo()

So this overriding of cdef methods by cpdef methods might completely solve my use case. Thanks!
_______________________________________________
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel

Reply via email to