Comment obtenir le nom de la méthode appelante en Python ?

Patricia Arquette
Libérer: 2024-11-11 03:32:02
original
395 Les gens l'ont consulté

How to Get the Name of the Calling Method in Python?

Comment identifier le nom de la méthode appelante dans une méthode appelée en Python

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):
    ...
Copier après la connexion

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal