Konvertieren einer Zeichenkette in einen Variablennamen in Python

Sahil Bhosale 21 Dezember 2022
  1. Konvertieren von einen String in einen Variablennamen mit globals() und locals() in Python
  2. Konvertieren von einen String in einen Variablennamen mit exec() in Python
Konvertieren einer Zeichenkette in einen Variablennamen in Python

In Python gibt es verschiedene Möglichkeiten, einen Zeichenketten Wert in einen Variablen -Namen umzuwandeln. In diesem Artikel werden wir verschiedene Möglichkeiten diskutieren, wie wir dies erreichen können.

Einige Benutzer möchten dies möglicherweise tun, um einen Variablennamen dynamisch zu definieren, während das Python-Programm ausgeführt wird. Das Konvertieren einer Zeichenkette in einen Variablennamen auf die unten gezeigte Weise wird bei der Entwicklung produktionsfähiger Software nicht empfohlen, da dies einige Probleme verursachen kann. Ja, dies ist möglich, aber bitte seien Sie dabei vorsichtig.

Konvertieren von einen String in einen Variablennamen mit globals() und locals() in Python

globals()

Die Funktion globals() in Python gibt das Dictionary der aktuellen globalen Symboltabelle zurück. In einer globalen Symboltabelle werden alle Informationen zum globalen Bereich des Programms gespeichert, auf die mit der Funktion globals() zugegriffen werden kann.

user_input = input("Enter string for variable name: \n")
globals()[user_input] = 50
print(apple)
print(type(apple))

Ausgabe:

Konvertieren Sie die Zeichenkette mit der Funktion globals() in einen Variablennamen

Das erste, was wir hier tun, ist, Eingaben vom Benutzer mit der Funktion input() zu übernehmen und eine Zeichenkette zu übergeben. Enter a string for a variable name: darin. Unabhängig davon, welchen Wert ein Benutzer eingibt, wird dieser Wert in der Variablen user_input gespeichert. Hier erwarten wir, dass der Benutzer apple als Zeichenkettenwert eingibt, der dann in user_input gespeichert wird. Wenn der Benutzer einen anderen Wert als apple eingibt, wird das Programm einen Fehler als NameError: name 'variable' is not defined ausgeben. Dies liegt daran, dass wir auch den Wert von apple drucken und den Typ später in unserem Code überprüfen.

Wenn der Benutzer den richtigen Wert eingegeben hat, können wir das globale Dictionary mit globals() ändern, um das globale Dictionary zu ändern und der Variablen apple einen beliebigen Wert zuzuweisen. Hier haben wir der Variablen apple 50 zugeordnet.

locals()

Die Funktion locals() in Python gibt das Dictionary der aktuellen lokalen Symboltabelle zurück. Auf eine lokale Symboltabelle kann mit Hilfe der Funktion locals() zugegriffen werden. Die Funktion locals() funktioniert fast genauso wie die Funktion globals(). Der einzige Unterschied besteht darin, dass local() auf die lokale Symboltabelle zugreifen kann und globals() auf die globale Symboltabelle zugreifen und ein Dictionary zurückgeben kann.

user_input = input("Enter string for variable name: \n")
locals()[user_input] = 50
print(apple)
print(type(apple))

Ausgabe:

Konvertieren Sie die Zeichenkette mit der Funktion globals() in einen Variablennamen

Dieser Code funktioniert genauso wie der von globals(). Der einzige Unterschied ist, dass wir hier die Funktion locals() verwendet haben.

Konvertieren von einen String in einen Variablennamen mit exec() in Python

Eine andere Möglichkeit, dies zu tun, ist die Verwendung der Funktion exec() in Python. Mit der Funktion exec() wird das Python-Programm dynamisch ausgeführt. Wir haben eine Variable name, in der wir einen String-Wert Elon speichern.

name = "Elon"
exec("%s = %d" % (name, 100))
print(Elon)

Ausgabe:

100

Innerhalb der Funktion exec() haben wir %s und %d, die als Platzhalter für den Zeichenkettenwert bzw. den Dezimalwert verwendet werden. Dies bedeutet, dass wir einem String mit Hilfe des Zuweisungsoperators = einen ganzzahligen Wert zuweisen. Sowohl %s als auch %d sind in den Anführungszeichen = enthalten. Dann haben wir eine Klammer, in der wir zwei Dinge haben, die erste ist die Variable, die wir erstellt haben, d. H. name, die den Wert Elon enthält, und die zweite, wir haben eine ganze Zahl 100.

Hier wird anstelle der Variablen name der Wert innerhalb dieser Variablen ersetzt. Die Ganzzahl 100 wird Elon zugewiesen. Elon wird zu einem Variablennamen, und wenn Sie ihn drucken, erhalten Sie 100 als Ausgabe.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Verwandter Artikel - Python String

Verwandter Artikel - Python Variable