Lorsque vous travaillez avec du code Python complexe, il peut être utile d'obtenir le nom de la méthode qui appelé une méthode spécifique. Cela peut faciliter le débogage, le profilage et la compréhension du flux de code.
Une façon d'y parvenir consiste à utiliser le module inspect, en particulier les fonctions getframeinfo et getouterframes. Ces fonctions fournissent des informations sur les frames actuelles et précédentes dans la pile d'appels.
Considérons l'exemple suivant :
def method1(self): ... a = A.method2() def method2(self): ...
Si nous voulons obtenir le nom de l'appelant (méthode1) dans la méthode2 sans modifier la méthode1, nous pouvons utiliser le code suivant :
import inspect def f1(): f2() def f2(): curframe = inspect.currentframe() calframe = inspect.getouterframes(curframe, 2) print('caller name:', calframe[1][3]) f1()
Ce code utilise le cadre actuel pour obtenir le cadre externe, qui représente la méthode appelante. Le nom de la fonction est ensuite extrait des informations du cadre externe.
Il est important de noter que les techniques d'introspection comme celle-ci sont principalement destinées à des fins de débogage et de développement. Il n'est pas recommandé de s'appuyer sur eux pour des fonctionnalités critiques pour la production.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!