Re: manipulating class attributes from a decorator while the classis being defined

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Christian Heimes

    Re: manipulating class attributes from a decorator while the classis being defined

    Wilbert Berendsen schrieb:
    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(s elf):
    pass
    >
    How can I reach the class attribute `regexps' from within a decorator?
    It's really tricky . The class object doesn't exists yet. It's created
    after all functions are parsed and created. You have can walk up the
    stack frames but it's ugly.

    Christian

Working...