Kann ein Python-Decorator einer Instanzmethode auf die Klasse zugreifen?

Hallo ich habe etwas in etwa wie das folgende. Im Prinzip brauche ich, um Zugriff auf die Klasse einer Instanz-Methode von einem Dekorator verwendet, die auf die Instanz-Methode, die in Ihrer definition.

def decorator(view):
    # do something that requires view's class
    print view.im_class
    return view

class ModelA(object):
    @decorator
    def a_method(self):
        # do some stuff
        pass

Den code wie Sie ist gibt


AttributeError: 'function' object has no attribute 'im_class'

Fand ich ähnliche Frage/Antworten - Python-decorator macht die Funktion vergessen, dass es gehört zu einer Klasse und Holen Sie sich Klasse in Python-decorator -, aber diese beruhen auf einen workaround, der packt die Instanz zur Laufzeit, indem er schnappte sich den ersten parameter. In meinem Fall werde ich den Aufruf der Methode basierend auf den gewonnenen Informationen aus seiner Klasse, so dass ich kann nicht warten, auf einen Anruf zu kommen.

Danke.

InformationsquelleAutor der Frage Carl G | 2010-03-02

Schreibe einen Kommentar