Looking for python Keywords? Try Ask4Keywords

Python LanguageDynamische Code-Ausführung mit "exec" und "eval"


Syntax

  • eval (Ausdruck [, Globals = Keine [, Einheimische = Keine]]
  • exec (Objekt)
  • exec (Objekt, Globals)
  • exec (Objekt, Globals, Einheimische)

Parameter

Streit Einzelheiten
expression Der Ausdruck Code als String oder ein code - Objekt
object Die Anweisung Code als String oder ein code - Objekt
globals Das für globale Variablen zu verwendende Wörterbuch. Wenn für Einheimische keine Angabe gemacht wird, wird dies auch für Einheimische verwendet. Wenn nicht angegeben, werden die globals() des aufrufenden Bereichs verwendet.
locals Ein Mapping- Objekt, das für lokale Variablen verwendet wird. Wenn nicht angegeben, wird stattdessen die für globals verwendet. Wenn beide weggelassen werden, werden die globals() und locals() des aufrufenden Bereichs für globals bzw. locals verwendet.

Bemerkungen

In exec , wenn globals ist locals (dh sie auf das gleiche Objekt verweisen), wird der Code ausgeführt , als ob es auf der Modulebene ist. Wenn globals und locals unterschiedliche Objekte sind, wird der Code so ausgeführt, als wäre er in einem Klassenkörper .

Wenn das globals Objekt übergeben wird, der globals __builtins__ Schlüssel jedoch nicht angegeben ist, werden die __builtins__ Funktionen und Namen von Python automatisch zum globalen Bereich hinzugefügt. Um die Verfügbarkeit von Funktionen wie print oder isinstance im ausgeführten Bereich zu unterdrücken, lassen Sie globals den Schlüssel __builtins__ auf den Wert None . Dies ist jedoch keine Sicherheitsfunktion.

Die Python 2-spezifische Syntax sollte nicht verwendet werden. Die Python 3-Syntax funktioniert in Python 2. Daher sind die folgenden Formulare veraltet: <s>

  • exec object
  • exec object in globals
  • exec object in globals, locals

Dynamische Code-Ausführung mit "exec" und "eval" Verwandte Beispiele