Python3 exec-Funktion

Python3 内置函数Python3 integrierte Funktionen


Beschreibung

execFührt Python-Anweisungen aus, die in einer Zeichenkette oder Datei gespeichert sind. Im Vergleich zueval,execkann es komplexeren Python-Code ausführen.

Syntax

Die folgende Syntax gilt für exec:

exec(object[, globals[, locals]])

Parameters

  • object: Erforderlicher Parameter, der den anzugebenden Python-Code darstellt. Er muss eine Zeichenkette oder ein Code-Objekt sein. Wenn object eine Zeichenkette ist, wird die Zeichenkette zuerst in eine Reihe von Python-Anweisungen geparst und dann ausgeführt (es sei denn, ein Syntaxfehler tritt auf). Wenn object ein Code-Objekt ist, wird es einfach ausgeführt.
  • globals: Optionaler Parameter, der den globalen Namensraum darstellt (speichert globale Variablen). Wenn angegeben, muss es ein Dictionary-Objekt sein.
  • locals: Optionaler Parameter, der den aktuellen lokalen Namensraum darstellt (speichert lokale Variablen). Wenn angegeben, kann es ein beliebiges Mapping-Objekt sein. Wenn dieser Parameter ignoriert wird, nimmt er denselben Wert wie globals an.

Rückgabewert

Der Rückgabewert von exec ist immer None.


Beispiele

Das Folgende zeigt Beispiele für die Verwendung von exec:

Beispiel 1

>>>exec('print("Hello World")') Hello World # Einzeilige Anweisungszeichenfolge >>> exec("print ('example.com')") example.com # Mehrzeilige Anweisungszeichenfolge >>> exec ("""for i in range(5): ... print ("iter time: %d" % i) ... """) iter time: 0 iter time: 1 iter time: 2 iter time: 3 iter time: 4

Beispiel 2

x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y = 20 exec(expr) exec(expr, {'x': 1, 'y': 2}) exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4}) func()

Ausgabe:

60
33
34

exec Rückgabewert

In Python wird die Funktionexecverwendet, um Code in einer Zeichenfolge auszuführen, aber sie gibt keinen Wert zurück. Wenn Sie den Rückgabewert nach der Ausführung des Codes erhalten möchten, können Sie die Funktionevaloderexec verwendenkombiniert mitlocals()oderglobals(), um den Wert der Variablen zu erhalten.

Bitte beachten Sie, dass die Verwendung vonevalundexecVorsicht erfordert, insbesondere wenn der ausgeführte Code aus einer nicht vertrauenswürdigen Quelle stammt, da Sicherheitsrisiken bestehen können.

Verwenden Sieeval, um den Rückgabewert zu erhalten:

Beispiel

code = '2 + 2'
result = eval(code)
print(result)

In diesem Beispiel,evalführt die Zeichenkette'2 + 2'aus und gibt das Ergebnis zurück4。

Die Ausgabe der obigen Codeausführung ist:

4

Mitexeckombiniert mitlocals(), um den Rückgabewert zu erhalten:

Beispiel

code = 'result = 2 + 2'
local_vars = {}
exec(code, globals(), local_vars)
result = local_vars['result']
print(result)

In diesem Beispiel,execführt die Zeichenkette'result = 2 + 2'aus und speichert das Ergebnis inlocal_varsim Wörterbuch unter dem'result'-Schlüssel.

Die Ausgabe der obigen Codeausführung ist:

4

Mitexeckombiniert mitglobals(), um den Rückgabewert zu erhalten:

Beispiel

code = 'result = 2 + 2'
global_vars = {}
exec(code, global_vars)
result = global_vars['result']
print(result)

In diesem Beispiel führtexecden String'result = 2 + 2'aus und speichert das Ergebnis inglobal_varsim Wörterbuch unter dem'result'-Schlüssel.

Die Ausgabe der obigen Codeausführung ist:

4

Python3 内置函数Python3 integrierte Funktionen

Andere Erweiterungen