Wilbert Berendsen <[EMAIL PROTECTED]> wrote: > Hi, is it possible to manipulate class attributes from within a > decorator while the class is being defined? > > I want to register methods with some additional values in a class > attribute. But I can't get a decorator to change a class attribute > while the class is still being defined. Something like: > > class Parser(object): > > regexps = [] > def reg(regexp): > def deco(func): > regexps.append((regexp, func)) > return func > return deco > > @reg(r'".*"') > def quoted_string(self): > pass > > How can I reach the class attribute `regexps' from within a decorator? >
Have you tried passing regexps into the decorator as a default argument? def reg(regexp, regexps=regexps): def deco(func): regexps.append((regexp, func)) return func return deco -- http://mail.python.org/mailman/listinfo/python-list