Récupération des noms de variables d'origine transmis aux fonctions
En Python, obtenir le nom d'origine d'une variable transmise à une fonction peut sembler simple tâche. Cependant, la portée variable et le typage dynamique de Python posent certains défis pour y parvenir. Néanmoins, il existe un moyen de contourner cette limitation, bien qu'il ne soit pas recommandé pour une utilisation pratique en raison de sa complexité et de ses pièges potentiels.
Grâce au module inspect, il est possible de récupérer le contexte de code de l'appelant. fonction et extrayez les noms des variables passées. L'exemple Python suivant montre comment cela peut être réalisé :
<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>
Sortie :
['e', '1000', 'c']
Il est important de noter que cette technique ne doit être utilisée qu'à des fins éducatives ou expérimentales. Il est déconseillé d'implémenter cette méthode dans le code de production, car elle peut conduire à un code fragile, difficile à déboguer et potentiellement vulnérable aux problèmes de sécurité.
De manière générale, il est préférable de transmettre les noms des variables explicitement comme arguments supplémentaires à la fonction, ou pour utiliser d'autres approches pour gérer la tâche qui ne nécessite pas l'obtention des noms de variables d'origine.
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!