Alexander Draeger <[EMAIL PROTECTED]> wrote: > Hello everybody, > > I'm very interesting in using the decorator concept, but I can't > convert it in useful things. I have read many about decorators and > have seen a lot of examples, but I search a possibility, to decorate > methods of classes with reference to the instances. For example: > > I have a class A: > > class A(object): > def __init__(self, name): > self.name=name > > @logging > def hello(self, name): > print 'Hello World.' > > > > >>>a=A('Ernie') > >>>b=A('Bert') > >>>a.hello() > Entering a method. [Ernie] > Hello World. > > >>>b.hello() > Entering a method. [Bert] > Hello World. > > > How should I implement the function logging, when I want to use the > variable self.name for the logging message? >
(Did you intend that other parameter to the hello method? If so you had better pass it in when you call the method.) Try this: >>> def logging(f): def deco(self, *args, **kw): print "Entering a method [%s]" % self.name return f(self, *args, **kw) return deco >>> class A(object): def __init__(self, name): self.name=name @logging def hello(self, name): print 'Hello World.' >>> a=A('Ernie') >>> a.hello('world') Entering a method [Ernie] Hello World. -- http://mail.python.org/mailman/listinfo/python-list