Heim >Backend-Entwicklung >Python-Tutorial >Was sind die Unterschiede zwischen den Python-Funktionen „eval', „exec' und „compile'?
Python bietet drei leistungsstarke Tools zum dynamischen Ausführen von Code: Eval, Exec und Compile . Jeder dient einem bestimmten Zweck und es ist wichtig, die Unterschiede zu verstehen.
Eval wird verwendet, um einen einzelnen Ausdruck auszuwerten. Es nimmt eine Zeichenfolge, die den Ausdruck darstellt, und gibt seinen Wert zurück. Zum Beispiel:
a = 5 result = eval('a + 10') print(result) # Output: 15
Exec wird verwendet, um einen Codeblock auszuführen. Es nimmt eine Zeichenfolge, die den Code darstellt, und gibt None zurück. Zum Beispiel:
my_code = """ for i in range(5): print(i) """ exec(my_code) # Output: # 0 # 1 # 2 # 3 # 4
Compile wird verwendet, um Code in Bytecode zu kompilieren, der dann vom Interpreter ausgeführt werden kann. Es benötigt eine Zeichenfolge, die den Code darstellt, und einen Modus („eval“, „exec“ oder „single“).
Im „eval“-Modus kompiliert „compile“ einen einzelnen Ausdruck in Bytecode, der den Wert des Ausdrucks zurückgibt. Im „exec“-Modus kompiliert es einen Codeblock in Bytecode, der None zurückgibt. Im Einzelmodus wird eine einzelne Anweisung oder ein einzelner Ausdruck in Bytecode kompiliert, der die Darstellung des Werts des Ausdrucks ausgibt.
Zum Beispiel:
bytecode = compile('a + 10', 'my_code', 'eval') result = eval(bytecode) print(result) # Output: 15 bytecode = compile(""" for i in range(5): print(i) """, 'my_code', 'exec') exec(bytecode) # Output: # 0 # 1 # 2 # 3 # 4
Function | What it does |
---|---|
eval | Evaluates a single expression |
exec | Executes a block of code |
compile | Compiles code into bytecode |
Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen den Python-Funktionen „eval', „exec' und „compile'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!