Comment déterminer le nom de la méthode de l'appelant en Python ?

Barbara Streisand
Libérer: 2024-11-10 10:40:03
original
976 Les gens l'ont consulté

How to Determine the Caller's Method Name in Python?

Comment déterminer le nom de la méthode de l'appelant dans une méthode appelée

En Python, comprendre la relation appelant-appelé est crucial pour le débogage et le code analyse. Un problème courant rencontré par les développeurs est l'identification du nom de la méthode de l'appelant dans la méthode appelée. Ces informations sont souvent utiles pour le débogage et peuvent aider à identifier la source d'un problème.

Pour résoudre ce problème, Python fournit le module inspect qui offre plusieurs fonctions pour accéder aux informations sur le cadre de pile actuel, y compris les détails de l'appelant. . La fonction inspect.getframeinfo() joue un rôle essentiel dans l'obtention de ces informations.

Considérez l'exemple suivant :

def method1(self):
    ...
    a = A.method2()

def method2(self):
    ...
Copier après la connexion

Dans ce scénario, si vous souhaitez déterminer le nom de la méthode de l'appelant sans en modifiant method1(), vous pouvez utiliser inspect.getframeinfo() dans method2() comme suit :

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

La sortie de ce code sera be :

caller name: f1
Copier après la connexion

Cette approche exploite les techniques d'introspection pour accéder aux informations sur le nom de la méthode de l'appelant. Cependant, il est important de noter que cette introspection est principalement destinée à des fins de débogage et de développement.

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