Maison >développement back-end >Tutoriel Python >Comment puis-je récupérer par programme le code source d'une fonction Python ?

Comment puis-je récupérer par programme le code source d'une fonction Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-17 09:57:24341parcourir

How Can I Programmatically Retrieve the Source Code of a Python Function?

Récupération du code source d'une fonction Python

Lorsque vous travaillez avec des fonctions Python, vous pouvez rencontrer le besoin de récupérer leur code source par programme. Ceci est généralement utile pour introspecter l'implémentation de la fonction ou à des fins de débogage.

Recherche des métadonnées de fonction

Python fournit plusieurs mécanismes pour inspecter les métadonnées de la fonction, y compris l'attribut func_name, qui renvoie le nom de la fonction sous la forme une chaîne. Cependant, cela ne fournit pas d'accès direct au code source.

Utilisation du module inspect

Pour récupérer le code source d'une fonction Python, vous pouvez exploiter le module inspect. Si la fonction est définie dans un fichier source disponible sur le système de fichiers, vous pouvez utiliser la fonction inspect.getsource(foo).

import inspect

def foo(arg1, arg2):
    # do something with args
    a = arg1 + arg2
    return a

lines = inspect.getsource(foo)
print(lines)

Cela imprimera le code source de la fonction foo tel qu'il apparaît. dans le fichier source.

Limitations de la récupération du code source

Il est important de noter que si la fonction est compilée à partir d'une chaîne, d'un flux ou importée de un fichier compilé, vous ne pourrez peut-être pas récupérer son code source.

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!

Déclaration:
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