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

Reply via email to