On Wed, Aug 18, 2010 at 10:01 AM, Lisandro Dalcin <[email protected]> wrote: > On 18 August 2010 13:52, Robert Bradshaw <[email protected]> wrote: >> On Wed, Aug 18, 2010 at 9:50 AM, Lisandro Dalcin <[email protected]> wrote: >>> On 18 August 2010 12:53, Carl Witty <[email protected]> wrote: >>>> >>>> Although I'm actually in favor of just leaving the post-#561 status, >>>> where __getattr__ remains unavailable to Python, using the "cdef >>>> classes are different" rationale. >>>> >>> >>> What about cheating and generating special code in Cython's >>> __getattribute__ to special case the "__getattr__" attribute and >>> return something useful? >> >> I'm not following you here. We currently create a __getattribute__ >> using the __getattr__ method, this is just a question of exposing the >> unbound method to Python space. >> > > cdef Foo: > def __getattr__(self, name): > ... > > def Foo_getattr_hook(obj, name): > try: > attr = Foo_getattr(obj, name) # this is the user defined code > in Foo.__getattr__() > except AttributeError: > if name == '__getattr__': > return bound_getattr_method(obj) > else: > raise > > .... > > Foo.tp_getattro = Foo_getattr_hook > > > Too easy... I'm likely missing something...
This doesn't provide the unbound method. - Robert _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
