Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich den Namen einer Python-Variablen zur Laufzeit abrufen?

Wie kann ich den Namen einer Python-Variablen zur Laufzeit abrufen?

Susan Sarandon
Susan SarandonOriginal
2024-12-21 14:02:10182Durchsuche

How Can I Get a Python Variable's Name at Runtime?

Variablennamen in Python abfangen

In Python ist der direkte Zugriff auf den Namen einer Variablen keine einfache Aufgabe. Für bestimmte Szenarien, in denen es entscheidend ist, den Variablennamen zu erhalten, sollten Sie jedoch die folgende Lösung in Betracht ziehen.

Der Trick des Inspect-Moduls

Mit dem Inspect-Modul können Sie den Aufrufstapel durchlaufen und die Variable extrahieren Name von Interesse. So geht's:

import inspect, re

def varname(p):
  for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]:
    m = re.search(r'\bvarname\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)', line)
    if m:
      return m.group(1)

Verwendungsbeispiel

Um die Funktionalität zu veranschaulichen, nehmen Sie an, Sie haben eine Variable namens spam mit dem Wert 42. Mit der Funktion varname() können Sie diese abrufen sein Name:

if __name__ == '__main__':
  spam = 42
  print varname(spam)

Ausgabe

Die Ausgabe wird sein:

spam

Hinweis zur Vorsicht

Dieser Ansatz bietet zwar eine Möglichkeit, auf Variablennamen zuzugreifen, es ist jedoch wichtig, ihn mit Bedacht zu verwenden. Von der direkten Benennung von Variablen wird in Pythonic-Codierungspraktiken im Allgemeinen abgeraten. Erwägen Sie alternative Lösungen, wie z. B. die Umwandlung der Konfigurationsdatei in ein Wörterbuch während der Initialisierung, um die Notwendigkeit dieser Technik zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann ich den Namen einer Python-Variablen zur Laufzeit abrufen?. 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