Eu tenho algo parecido com o seguinte. Basicamente, preciso acessar a classe de um método de instância de um decorador usado no método de instância em sua definição.
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
O código como está fornece:
AttributeError: o objeto 'function' não tem atributo 'im_class'
Eu encontrei perguntas / respostas semelhantes - o decorador Python faz a função esquecer que ela pertence a uma classe e Get class no decorador Python - mas elas dependem de uma solução alternativa que captura a instância em tempo de execução ao capturar o primeiro parâmetro. No meu caso, chamarei o método com base nas informações coletadas de sua classe, portanto, mal posso esperar a chegada de uma chamada.