Heim  >  Artikel  >  Backend-Entwicklung  >  Können Sie die ursprünglichen Variablennamen abrufen, die an eine Python-Funktion übergeben wurden?

Können Sie die ursprünglichen Variablennamen abrufen, die an eine Python-Funktion übergeben wurden?

DDD
DDDOriginal
2024-11-01 17:00:02877Durchsuche

Can You Retrieve the Original Variable Names Passed to a Python Function?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn