Я довольно плохо знаком с Python и не смог найти ответ на этот вопрос из поиска в Интернете.
Вот пример декоратора, который ничего не делает (пока)
def my_decorator(text):
def wrap(f):
# grab magic f.parent_class_object.my_var and append text
def wrap_f(*args, **kwargs):
f(*args, **kwargs)
return wrap_f
return wrap
Вот пример класса
class MyClass:
my_var = []
@my_decorator('sometext')
def my_func()
# do some super cool thing
В моем декораторе я хотел бы получить доступ к объекту класса для MyClass
и добавить 'sometext' в список MyClass.my_var
. Моя цель - заполнить my_var декорированными значениями при загрузке модуля времени, а не времени вызова функции.
Есть ли способ, с помощью которого я могу перейти от f
к MyClass
, чтобы сделать это? Я знаю, что * args [0] является экземпляром MyClass, но он доступен только при вызове функции.