On Mar 18, 2008, at 5:04 PM, Greg Ewing wrote: > Simon Burton wrote: >> Ie. the c attribute has an underscore in front of it, and >> from python the attribute is without underscore. >> >> As this is likely to drive me moderately crazy (keeping track >> of underscores) I am wondering how other people handle this issue ? > > Would calling it "c_foo" make you feel any better? > > I'm not sure what could be done to make this any easier, > short of having some magic by which the same name refers > to the C attribute in Pyrex and the Python property in > Python. But you need to be able to refer to the property > in Pyrex as well, so I can't see how that would work. > >> A similar problem occurs with methods. I gave up on duplicating >> every method >> (a cdef version and a python version), and am just using python >> methods for now. > > Cython has a mechanism for making C methods callable from > Python as well as Pyrex, but last I heard, the implementation > is incorrect in the presence of overriding+inheritance, and > the Cython people are unwilling to pay the performance cost > required to make it work properly.
Overriding and inheritance work for cpdef methods exactly as they do in Python. This has a slight speed penalty (one dictionary lookup) in some cases, but in the most common case it is essentially as fast as a cdef method. - Robert _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
