Maison > développement back-end > Tutoriel Python > Pouvez-vous récupérer les noms de variables d'origine dans les fonctions Python ?

Pouvez-vous récupérer les noms de variables d'origine dans les fonctions Python ?

Barbara Streisand
Libérer: 2024-10-31 17:34:02
original
1014 Les gens l'ont consulté

Can You Retrieve Original Variable Names in Python Functions?

Récupération des noms de variables d'origine dans les fonctions Python

En Python, il peut sembler souhaitable d'obtenir le nom d'origine d'une variable lorsqu'elle est passée à une fonction. Cependant, cette tâche n'est pas directement prise en charge par le langage.

Pour résoudre ce problème, on peut utiliser le module inspect, bien qu'il ne soit pas recommandé en raison d'inconvénients et d'inconvénients potentiels.

<code class="python">import inspect

def foo(a, f, b):
    frame = inspect.currentframe()
    frame = inspect.getouterframes(frame)[1]
    string = inspect.getframeinfo(frame[0]).code_context[0].strip()
    args = string[string.find('(') + 1:-1].split(',')

    names = []
    for i in args:
        if i.find('=') != -1:
            names.append(i.split('=')[1].strip())

        else:
            names.append(i)

    print(names)

def main():
    e = 1
    c = 2
    foo(e, 1000, b=c)

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

Sortie :

['e', '1000', 'c']
Copier après la connexion

Remarques importantes :

  • Cette méthode doit être considérée comme un hack et ne doit pas être utilisée dans le code de production.
  • Elle peut échouer dans certaines situations, par exemple lors de l'utilisation de fonctions imbriquées ou d'expressions lambda.
  • Il existe des approches alternatives, telles que passer le nom de la variable comme argument supplémentaire.

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