Heim > Artikel > Backend-Entwicklung > So verwenden Sie die Eval-Funktion in Python
Was ist die Auswertungsfunktion in Python? Der eigentliche Parameter von eval(expression, globals=None, locals=None) ist eine Zeichenfolge und optionale Globals und Locals. Das Argument globals muss ein Wörterbuch sein. Einheimische können jedes Mapping-Objekt sein. Der Ausdrucksparameter
expression wird als Python-Ausdruck (technisch gesehen eine Liste von Bedingungen) analysiert und ausgewertet, wobei die Wörterbücher globals und locals für globale und lokale Namespaces verwendet werden. Wenn das Globals-Wörterbuch vorhanden ist und keinen durch __builtins__ verschlüsselten Wert enthält, wird ein Verweis auf das durch Builtins verschlüsselte Wörterbuch eingefügt, bevor der Ausdruck analysiert wird. Dies bedeutet, dass Expression normalerweise vollen Zugriff auf integrierte Standardmodule hat und die eingeschränkte Umgebung weitergegeben wird. Wenn das Locals-Wörterbuch weggelassen wird, ist sein Standardwert das Globals-Wörterbuch. Wenn beide Wörterbücher weggelassen werden, wird der Ausdruck in dem Kontext ausgewertet, in dem eval() aufgerufen wird. Der Rückgabewert ist das Ergebnis der Auswertung des Ausdrucks. Syntaxfehler werden als Ausnahmen gemeldet.
Verwandte Empfehlungen: „Python Video Tutorial“
Zum Beispiel:
>>> x = 1 >>> eval('x+1') 2
Diese Funktion kann auch zum Ausführen eines beliebigen Codeobjekts (z. B compile() erstellt). In diesem Fall ist der Parameter ein Codeobjekt und keine Zeichenfolge. Wenn das Modusargument beim Kompilieren des Objekts „exec“ ist, ist der Rückgabewert von eval() None .
Tipp: Die Funktion exec() unterstützt die dynamische Ausführung von Anweisungen. Die Funktionen globals() und locals() geben jeweils die aktuellen globalen und lokalen Wörterbücher zurück, sodass Sie sie zur Verwendung an eval() oder exec() übergeben können.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Eval-Funktion in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!