En Wed, 22 Jul 2009 05:31:13 -0300, Jon Clements <jon...@googlemail.com> escribió:
On 22 July, 06:02, "Gabriel Genellina" <gagsl-...@yahoo.com.ar> wrote:

I have a class attribute 'foo' which is a data descriptor. I create an  
instance of such class. When I say instance.foo = value, the descriptor  
__set__ method is called. Is there any way to obtain the name being  
assigned to? ('foo' in this example). That is, I want to know the target  
name for the assignment that triggered the __set__ method call.

class Test:
        def __setattr__(self, what, value):
                print what, value


t = Test()
t.foo = 'x'
foo x

Is that what you're after?

Yes and no. __setattr__ has a terrible overhead as it is invoked for each and every attribute being set, special or not. Using a custom descriptor seems better, because it allows to intercept just the desired attribute. If only I had access to the name being used...

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to