python decorator to modify variable in current scope

Posted by AlexH on Stack Overflow See other posts from Stack Overflow or by AlexH
Published on 2010-04-26T14:29:19Z Indexed on 2010/04/26 14:43 UTC
Read the original article Hit count: 336

Filed under:
|
|

Goal: Make a decorator which can modify the scope that it is used in.

If it worked:

class Blah(): # or perhaps class Blah(ParentClassWhichMakesThisPossible)

    def one(self):
        pass

    @decorated
    def two(self):
        pass

>>> Blah.decorated
["two"]

Why? I essentially want to write classes which can maintain specific dictionaries of methods, so that I can retrieve lists of available methods of different types on a per class basis. errr.....

I want to do this:

class RuleClass(ParentClass):
    @rule
    def blah(self):
        pass

    @rule
    def kapow(self):
        pass

    def shazam(self):

class OtherRuleClass(ParentClass):
    @rule
    def foo(self):
        pass

    def bar(self):
        pass

>>> RuleClass.rules.keys()
["blah", "kapow"]
>>> OtherRuleClass.rules.keys()
["foo"]

© Stack Overflow or respective owner

Related posts about python

Related posts about decorators