Wie kann ich eine Klasseninstanzvariable als Argument für einen Methodendekorator in Python verwenden? Das folgende minimale Beispiel zeigt, was ich zu tun versuche. Es schlägt offensichtlich fehl, da die Dekorator-Funktion keinen Zugriff auf die Referenz auf die Instanz hat und ich keine Ahnung habe, wie ich vom Dekorator Zugriff auf die Referenz bekomme.
def decorator1(arg1):
def wrapper(function):
print "decorator argument: %s" % arg1
return function
return wrapper
class Foo(object):
def __init__(self, arg1):
self.var1 = arg1
@decorator1(self.var1)
def method1(self):
print "method1"
foo = Foo("abc")
foo.method1()