9 Stimmen

Wie kann ich eine Klasseninstanzvariable als Argument für einen Methodendekorator in Python verwenden?

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()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X