[Cython] __getattribute__
Greg Ewing
greg.ewing at canterbury.ac.nz
Fri May 9 05:24:28 CEST 2008
Robert Bradshaw wrote:
> I think this is a philosophical difference between Cython and Pyrex--
> ... Eventually one should be able to take
> any .py file, run Cython on it, and have it behave exactly the same.
Actually, it would, because a pure Python file isn't
going to contain any extension classes, and whatever
else is done, __getattribute__ on a Python class should
follow Python semantics.
But this is certainly a difference in goals between
Pyrex and Cython. The goal of Pyrex is not to compile
Python efficiently, but to enable efficient bridging
between Python and C.
> In terms of efficiency, __getattribute__ is called at the top, and on
> success tp_getattr returns immediately, so it should be just about as
> fast.
To my mind, the semantic difference is actually a
feature -- it lets you completely control what it
means to look up an attribute of your object.
A compromise might be to find another name for the
method that directly fills tp_getattr. But then
we'd have *three* variants of attribute-getting
methods to keep straight... not sure if that would
be an improvement or not.
--
Greg
More information about the Cython-dev
mailing list