Maison > développement back-end > Tutoriel Python > Comment une fonction peut-elle découvrir son propre nom en Python ?

Comment une fonction peut-elle découvrir son propre nom en Python ?

Susan Sarandon
Libérer: 2024-10-28 22:33:30
original
775 Les gens l'ont consulté

 How Can a Function Discover Its Own Name in Python?

À la recherche de l'identité de la fonction : découvrir son nom de l'intérieur

Dans le domaine du codage, les fonctions servent souvent de blocs de construction, effectuant des tâches spécifiques et former la base de programmes plus vastes. Cependant, avez-vous déjà rencontré le besoin de connaître le nom de la fonction que vous exécutez actuellement ?

Imaginez une fonction nommée foo qui souhaite proclamer son identité : "Bonjour tout le monde ! Je m'appelle foo." Mais comment foo peut-il déterminer son propre nom sans le coder explicitement en dur ?

Entrez dans le domaine de l'introspection dynamique. Grâce au module inspecter, il est possible de récupérer des informations sur la fonction en cours d'exécution à partir de cette même fonction. En plongeant dans les profondeurs de la pile, la méthode inspect.stack() renvoie une liste de frames, chacune représentant un appel dans la pile d'exécution actuelle.

Dans notre cas, inspect.stack()[0][ 3] désigne le cadre de la fonction actuelle, tandis que inspect.stack()[1][3] représente l'appelant de la fonction actuelle. En utilisant ces connaissances, le code suivant permet à foo de proclamer son identité sans recourir à des chaînes statiques :

<code class="python">import inspect

def foo():
   print("my name is", inspect.stack()[0][3])
   print("caller of foo:", inspect.stack()[1][3])

foo()</code>
Copier après la connexion

Et comme par magie, le résultat révèle :

my name is foo
caller of foo: <module_caller_of_foo>
Copier après la connexion

Exploiter le pouvoir de l'introspection , les fonctions peuvent désormais discerner leurs propres noms, ce qui leur permet de s'adapter et de communiquer dynamiquement leur identité dans le paysage en constante évolution de l'exécution du code.

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