2 Stimmen

Zugriff auf sich selbst in einer Dekoratorfunktion innerhalb einer Python-Klasse

Ich habe eine Decorator-Funktion, die ich auf Funktionen innerhalb einer Klasse anwende. Der Dekorator soll eine Prüfung gegen eine _api Mitgliedsvariable. Ich erhalte jedoch eine global name 'self' is not defined Fehler, wenn ich versuche, dies zu tun. Was ist der richtige Weg?

def requires_api(fn):
    def wrapped(*args, **kwargs):
        if self._api is not None:
            return fn(*args, **kwargs)
        else:
            return None
    return wrapped

@requires_api       
def do_something(self):
...

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