У мене є щось приблизно так. В основному мені потрібно отримати доступ до класу методу екземпляра від декоратора, який використовується методом екземпляра в його визначенні.
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
Код, як є, дає:
AttributeError: об’єкт 'function' не має атрибута 'im_class'
Я знайшов подібне запитання / відповіді - Python decorator змушує функцію забути, що вона належить до класу та Get class в Python decorator - але вони покладаються на обхід, який захоплює екземпляр під час виконання, витягуючи перший параметр. У моєму випадку я буду викликати метод на основі інформації, зібраної з його класу, тому я не можу дочекатися входу дзвінка.