Я хочу создать класс декоратора AddToHistory
для изменения записей истории экземпляров других классов, когда вызывается определенный метод.Так, например, в псевдокоде:
class AddToHistory(object):
...
def __call__(self, ...):
instance.history.append(fun_name)
class MyClass(object):
def __init__(self):
self.history = []
@AddToHistory
def methodA():
...
@AddToHistory
def methodB(input):
...
def methodC():
...
inst = MyClass()
print(inst.history)
>>> []
inst.methodA()
print(inst.history)
>>> ['methodA']
inst.methodB(myinput)
print(inst.history)
>>> ['methodA', 'methodB']
inst.methodC()
print(inst.history)
>>> ['methodA', 'methodB']
Декоратор должен автоматически использовать имя оформленного метода.
Я уже искал и пытался довольно долго, но не смог найтихороший способ реализовать это.Любые намеки с вашей стороны?
Заранее большое спасибо!