[EMAIL PROTECTED] wrote: > I wish to decorate all of the CX.func() in the same way. One way to > do this is to add a decorator to each of the derived classes. But > this is tedious and involves modifying multiple files. > > Is there a way to modify the parent class and have the same effect? > Or some other way neater than the above? >
Use a metaclass. >>> def decorate(f): print "decorating", f return f >>> class meta(type): def __init__(self, name, bases, dictionary): if 'func' in dictionary: dictionary['func'] = decorate(dictionary['func']) type.__init__(self, name, bases, dictionary) >>> class P(object): __metaclass__ = meta >>> class C1(P): def func(self): pass decorating <function func at 0x0119B370> >>> -- http://mail.python.org/mailman/listinfo/python-list