Je suis un peu nouveau sur Python, et je n'ai pas été en mesure de trouver une réponse à cette question de la recherche en ligne.En Python, est-il possible d'accéder à la classe qui contient une méthode, donnée seulement un objet méthode?
Voici un décorateur exemple qui ne fait rien (encore)
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
Voici un exemple de classe
class MyClass:
my_var = []
@my_decorator('sometext')
def my_func()
# do some super cool thing
Dans mon décorateur je voudrais accéder à l'objet de classe pour MyClass
et ajouter dans 'sometext' à la liste MyClass.my_var
. Mon but est de remplir my_var avec des valeurs décorées au charge du module heure, pas la fonction call time.
Y at-il un moyen que je peux naviguer de f
à MyClass
pour ce faire? Je sais que * args [0] est l'instance de MyClass, mais cela n'est disponible que lorsque la fonction est appelée.