


Können Sie ursprüngliche Variablennamen aus Funktionsargumenten in Python extrahieren?
Oct 30, 2024 pm 12:34 PMSo extrahieren Sie den ursprünglichen Variablennamen aus an Funktionen übergebenen Argumenten
Stellen Sie sich das folgende Szenario vor: Sie haben eine Funktion, die den Namen einer Variablen als Argument benötigt Führen Sie einige Operationen basierend auf diesem Namen aus. Gibt es eine Möglichkeit, den ursprünglichen Variablennamen innerhalb der Funktion abzurufen?
Um diese Frage zu beantworten, untersuchen wir eine Methode, die das Inspect-Modul nutzt, mit der Sie den Aufrufkontext abrufen und die Variablennamen aus dem Codekontext extrahieren können .
<code class="python">import inspect def foo(a, f, b): # Get the stack frame of the calling function frame = inspect.currentframe() # Move up one level to get the frame of the calling context frame = inspect.getouterframes(frame)[1] # Get the source code context of the calling context string = inspect.getframeinfo(frame[0]).code_context[0].strip() # Extract the argument names from the code context args = string[string.find('(') + 1:-1].split(',') names = [] for i in args: if i.find('=') != -1: # Handle keyword arguments names.append(i.split('=')[1].strip()) else: # Handle positional arguments names.append(i) print(names) def main(): e = 1 c = 2 foo(e, 1000, b = c) main()</code>
Erklärung:
- inspect.currentframe() ruft den Stapelrahmen der aktuellen Funktion ab, in diesem Fall foo().
- inspect.getouterframes() navigiert im aufrufenden Kontext eine Ebene nach oben, um den Frame der aufrufenden Funktion main() abzurufen.
- inspect.getframeinfo() ruft die Codekontextinformationen für ab erfasster Rahmen.
- Wir isolieren die Argumentliste, indem wir den Codekontext analysieren, und extrahieren dann die Namen der Argumente, wobei wir sowohl Positions- als auch Schlüsselwortargumente berücksichtigen.
- Schließlich die Liste der Originalvariablen Namen werden ausgedruckt.
Beispielausgabe:
['e', '1000', 'c']
Hinweis: Bei diesem Ansatz wird der Aufrufstapel überprüft und interpretiert Quellcodekontext, der fragil und fehleranfällig ist. Es wird nicht für den praktischen Gebrauch empfohlen und sollte nur für akademische oder Unterhaltungszwecke in Betracht gezogen werden.
Das obige ist der detaillierte Inhalt vonKönnen Sie ursprüngliche Variablennamen aus Funktionsargumenten in Python extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?

So herunterladen Sie Dateien in Python

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden

Wie man mit PDF -Dokumenten mit Python arbeitet

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?

Einführung des natürlichen Sprach -Toolkits (NLTK)
