2011/8/24 Stefan Behnel <stefan...@behnel.de>: > Vitja Makarov, 24.08.2011 21:17: >> >> 2011/8/24 Stefan Behnel: >>> >>> Vitja Makarov, 24.08.2011 21:00: >>>> >>>> Recently I used cython in my project and I came with idea that >>>> sometimes virtual methods are overkill. >>>> >>>> What's about adding non-virtual decorator for c[p]def methods? >>>> >>>> cdef class Foo: >>>> @cython.nonvirtual >>>> cpdef int is_active(self): >>>> return clib.obj_is_active(self._cobj) >>> >>> How does that differ from the "final" decorator? >>> >> >> I tried final classes: >> 1. Final decorator doesn't work at pxd level (compiler crash) > > Sounds like a bug. > > >> 2. In this example foo call is done through virtual table >> >> cimport cython >> >> @cython.final >> cdef class Foo: >> cdef foo(self): >> print 'haha' >> >> def test(): >> cdef Foo a = Foo() >> a.foo() >> >> __pyx_t_1 = ((struct __pyx_vtabstruct_3yyy_Foo >> *)__pyx_v_a->__pyx_vtab)->foo(__pyx_v_a); if (unlikely(!__pyx_t_1)) >> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = >> __LINE__; goto __pyx_L1_error;} > > Right, this is not implemented yet. Feel free to do so. Also see > > http://trac.cython.org/cython_trac/ticket/474 > > >> 3. I can't use final decorator for methods (error reported) > > http://trac.cython.org/cython_trac/ticket/586 >
What is the prefered syntax keyword inline or final decorator? -- vitja. _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel