manipulating class attributes from a decorator while the class is being defined

Wilbert Berendsen wbsoft at xs4all.nl
Sat Apr 19 17:19:14 EDT 2008


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?

Thanks for any help,
Wilbert Berendsen

-- 
http://www.wilbertberendsen.nl/
"You must be the change you wish to see in the world."
        -- Mahatma Gandhi



More information about the Python-list mailing list