Python exec() 函数



Python exec() 函数允许动态执行 Python 代码。它可以执行包含 Python 语句的字符串或已编译的代码对象。通常,此函数用于运行程序的另一部分生成的代码。

与仅接受单个表达式的 eval() 函数不同,exec() 函数可以接受单个或多个表达式或一大块代码。

exec() 是内置函数之一,不需要任何模块。

语法

以下是 Python exec() 函数的语法。


 exec(object, globals, locals)

参数

以下是 Python exec() 函数的参数 -

  • object − 此参数表示字符串或代码对象。
  • globals − 此参数指定全局函数。
  • locals − 此参数表示本地函数。

返回值

python exec() 函数不返回任何值。

exec() 函数示例

练习以下示例来理解 Python 中 exec() 函数的用法:

示例:使用 exec() 执行单个表达式

exec() 函数可用于执行单个表达式。以下是 Python exec() 函数的一个示例,我们尝试执行一个简单的 print 语句。


printStatement = 'print("qikepu")'
exec(printStatement)

在执行上述程序时,将生成以下输出 -

qikepu

示例:使用 exec() 执行动态代码

在此示例中,我们将演示如何使用 help exec() 函数执行动态代码。在这里,名为 “msg” 的方法动态接受一个参数并打印结果。


printStatement = """
def msg(name):
	 	 print(f"This is, {name}!")
"""
exec(printStatement)
msg("qikepu")

以下是执行上述程序得到的输出 -

This is, qikepu!

示例:通过向 exec() 提供表达式来更新变量

在 exec() 函数的帮助下,我们可以通过执行算术运算或任何其他方式来修改给定的值,如下面的代码块所示。


nums = 15
exec("res = nums + 15")
print("The result after execution:", res)

通过执行上述程序获得以下输出 -

The result after execution: 30

示例:使用 exec() 执行循环表达式

我们可以使用 exec() 函数执行任何小型或大型代码块。在此示例中,我们在 exec() 函数的帮助下运行 for 循环。


output = "for nums in range(5): print(nums)"
print("The result after execution:")
exec(output)

上述程序在执行时显示以下输出 -

The result after execution:
0
1
2
3
4