Python 提供了三个用于动态执行代码的强大工具:eval、exec 和compile 。每个都有特定的用途,了解它们的差异非常重要。
Eval 用于计算单个表达式。它采用表示表达式的字符串并返回其值。例如:
a = 5 result = eval('a + 10') print(result) # Output: 15
Exec 用于执行一段代码。它采用一个表示代码的字符串并返回 None。例如:
my_code = """ for i in range(5): print(i) """ exec(my_code) # Output: # 0 # 1 # 2 # 3 # 4
Compile 用于将代码编译为字节码,然后由解释器执行。它采用表示代码的字符串和模式(“eval”、“exec”或“single”)。
在“eval”模式下,compile 将单个表达式编译为返回表达式值的字节码。在“exec”模式下,它将代码块编译为返回 None 的字节码。在“单一”模式下,它将单个语句或表达式编译为字节码,并打印表达式值的表示。
例如:
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 |
以上是Python 的 `eval`、`exec` 和 `compile` 函数有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!