[Cython] Virtual cpdef methods

Jeroen Demeyer jdemeyer at cage.ugent.be
Mon Jun 20 09:08:51 EDT 2016


Hello,

I would like to have a "virtual" cpdef method: something which allows a 
fast Cython call *when implemented* but without a default implementation.

The most simple implementation would be a "cpdef" method but without an 
entry for the method in the Python method table.

Of course, the "cdef" part needs to be implemented by the user (you need 
to put something in the vtab). For my purposes, something like "raise 
AttributeError" would be sufficient.

1. Can this be accomplished currently in Cython?

2. Is this something that makes sense to add to Cython?

3. What do you think of the following syntax?

cdef class MyClass(object):
     cpdef virtual_method(self):
         # implementation of "cdef" part ...

     del virtual_method  # don't put virtual_method in the method table


More information about the cython-devel mailing list