All methods (cdef, cpdef, and def) are virtual by default in Cython, just like Python.
Sounds like you want a cdef function to me. You can override a cdef function with a cpdef function for any subclass that wishing to expose it to Python. On Mon, Jun 20, 2016 at 6:08 AM, Jeroen Demeyer <jdeme...@cage.ugent.be> wrote: > 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 > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > https://mail.python.org/mailman/listinfo/cython-devel _______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel