Python eval()-Funktion
Python3 integrierte Funktionen
eval()Ist eine in Python integrierte Funktion, die verwendet wird, um Python-Ausdrücke in Zeichenketten auszuführen.
eval()Akzeptiert eine Zeichenkette, führt sie als Python-Code aus und gibt das Ausführungsergebnis zurück. Es ist eine leistungsstarke Funktion, aber unsachgemäße Verwendung kann Sicherheitsrisiken mit sich bringen.
Wortdefinition: evalJaevaluateAbkürzung für (evaluation).
Grundlegende Syntax und Parameter
Syntaxformat
eval(expression, globals, locals)
Parameterbeschreibung
- Parameterausdruck:
- Typ: String
- Beschreibung: Der Python-Ausdruck, der ausgeführt werden soll.
- Parameter globals(optional):
- Typ: Dictionary
- Beschreibung: Globaler Namensraum.
- Parameter locals(optional):
- Typ: Dictionary
- Beschreibung: Lokaler Namensraum.
Funktionsbeschreibung
- Rückgabewert: Gibt das Ausführungsergebnis des Ausdrucks zurück.
- Sicherheitswarnung: Nicht bei nicht vertrauenswürdigen Eingaben verwenden
eval(), da dies zu Code-Injection-Angriffen führen kann.
Beispiele
Beispiel 1: Grundlegende Verwendung
Beispiel
# Berechne einen mathematischen Ausdruck
result = eval("1 + 2 + 3")
print(result) # Ausgabe: 6
# Variablen verwenden
x = 10
result = eval("x * 2")
print(result) # Ausgabe: 20
# Komplexer Ausdruck
result = eval("2 ** 3 + 4 * 5")
print(result) # Ausgabe: 28
# Funktionsaufruf
result = eval("len('hello')")
print(result) # Ausgabe: 5
result = eval("1 + 2 + 3")
print(result) # Ausgabe: 6
# Variablen verwenden
x = 10
result = eval("x * 2")
print(result) # Ausgabe: 20
# Komplexer Ausdruck
result = eval("2 ** 3 + 4 * 5")
print(result) # Ausgabe: 28
# Funktionsaufruf
result = eval("len('hello')")
print(result) # Ausgabe: 5
Erwartete Ausgabe:
6 20 28 5
Code-Erklärung:
eval()Kann arithmetische Ausdrücke ausführen.- Kann auf definierte Variablen verweisen.
- Kann integrierte Funktionen aufrufen.
Beispiel 2: Eingeschränkte Umgebung
Beispiel
# Verfügbare Funktionen und Variablen einschränken
x = 10
y = 20
# Ein eingeschränktes globales Wörterbuch erstellen
safe_dict = {"x": x, "y": y, "abs": abs}
result = eval("x + y", safe_dict)
print(result) # Ausgabe: 30
# Zugriff auf gefährliche Funktionen verbieten
try:
eval("__import__('os').system('ls')", {})
except NameError as e:
print(f"Sicherheitsbeschränkung: {e}")
x = 10
y = 20
# Ein eingeschränktes globales Wörterbuch erstellen
safe_dict = {"x": x, "y": y, "abs": abs}
result = eval("x + y", safe_dict)
print(result) # Ausgabe: 30
# Zugriff auf gefährliche Funktionen verbieten
try:
eval("__import__('os').system('ls')", {})
except NameError as e:
print(f"Sicherheitsbeschränkung: {e}")
Erwartete Ausgabe:
30 安全限制: name '__import__' is not defined
Dieses Beispiel zeigt, wie man dieeval()Sicherheit durch Einschränken des globals-Wörterbuchs verbessert.
Python3 integrierte Funktionen
Andere Erweiterungen