Hallo, ich habe ungefähr so etwas wie das Folgende. Grundsätzlich muss ich von einem Dekorator, der für die Instanzmethode in ihrer Definition verwendet wird, auf die Klasse einer Instanzmethode zugreifen.
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
Der Code wie er ist gibt:
AttributeError: 'function' object has no attribute 'im_class'
Ich habe ähnliche Fragen / Antworten gefunden - Python Decorator lässt die Funktion vergessen, dass sie zu einer Klasse gehört, und Get Class in Python Decorator - aber diese basieren auf einer Problemumgehung, die die Instanz zur Laufzeit erfasst, indem der erste Parameter abgerufen wird. In meinem Fall rufe ich die Methode basierend auf den Informationen auf, die aus ihrer Klasse stammen, sodass ich nicht warten kann, bis ein Aufruf eingeht.