Heim > Artikel > Backend-Entwicklung > Können Sie die ursprünglichen Variablennamen abrufen, die an eine Python-Funktion übergeben wurden?
Original-Variablennamen abrufen, die an Funktionen übergeben wurden
In Python scheint es einfach zu sein, den Originalnamen einer an eine Funktion übergebenen Variablen zu erhalten Aufgabe. Allerdings stellen der variable Umfang und die dynamische Typisierung von Python einige Herausforderungen dar, um dies zu erreichen. Dennoch gibt es eine Möglichkeit, diese Einschränkung zu umgehen, obwohl sie aufgrund ihrer Komplexität und potenziellen Fallstricke für den praktischen Einsatz nicht zu empfehlen ist.
Mithilfe des Inspect-Moduls ist es möglich, den Codekontext des Aufrufs abzurufen Funktion und extrahieren Sie die Namen der übergebenen Variablen. Das folgende Python-Beispiel zeigt, wie dies bewerkstelligt werden kann:
<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>
Ausgabe:
['e', '1000', 'c']
Es ist wichtig zu beachten, dass diese Technik nur für Bildungs- oder Versuchszwecke verwendet werden sollte. Es ist nicht ratsam, diese Methode in Produktionscode zu implementieren, da dies zu brüchigem, schwer zu debuggendem und potenziell anfälligem Code für Sicherheitsprobleme führen kann.
Im Allgemeinen ist es vorzuziehen, die Variablennamen zu übergeben explizit als zusätzliche Argumente für die Funktion oder um andere Ansätze zur Bewältigung der Aufgabe zu verwenden, die nicht den Erhalt der ursprünglichen Variablennamen erfordern.
Das obige ist der detaillierte Inhalt vonKönnen Sie die ursprünglichen Variablennamen abrufen, die an eine Python-Funktion übergeben wurden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!