Ho qualcosa di simile al seguente. Fondamentalmente ho bisogno di accedere alla classe di un metodo di istanza da un decoratore utilizzato sul metodo di istanza nella sua definizione.
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
Il codice così com'è fornisce:
AttributeError: l'oggetto "function" non ha attributo "im_class"
Ho trovato domande / risposte simili: Python decorator fa dimenticare alla funzione di appartenere a una classe e Get class in Python decorator , ma queste si basano su una soluzione alternativa che acquisisce l'istanza in fase di esecuzione strappando il primo parametro. Nel mio caso, chiamerò il metodo in base alle informazioni raccolte dalla sua classe, quindi non vedo l'ora che arrivi una chiamata.