Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-builtin-functions-exec.html

python 用于执行存储在字符串或对象中的 Python 代码的内置函数 exec 详解

Python 内置函数 Python 内置函数


exec 是 Python 中的一个内置函数,用于执行存储在字符串或对象中的 Python 代码。它允许动态地在运行时执行代码。

函数语法

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

参数:

  • object :必需,表示要执行的代码。可以是一个字符串(包含 Python 代码)或者是一个代码对象(通常使用 compile() 函数创建)。
  • globals :可选,是一个包含全局命名空间的字典。如果未提供,将使用当前全局命名空间。
  • locals :可选,是一个包含局部命名空间的字典。如果未提供,将使用当前局部命名空间。

示例代码

执行字符串形式的代码:

code_str = "print('Hello, World!')"
exec(code_str)

运行结果:

Hello, World!

使用局部和全局命名空间:

global_var = 10
local_var = 5

code_str = "result = global_var + local_var"
local_namespace = {}
exec(code_str, globals(), local_namespace)

print(local_namespace['result'])

运行结果:

15

动态创建函数:

func_code = """
def greet(name):
    print(f'Hello, {name}!')
"""

exec(func_code)
greet('Alice')

运行结果:

Hello, Alice!

总结

exec 函数允许你在运行时执行动态生成的 Python 代码。它可以用于动态创建函数、执行动态生成的代码块以及在一些特殊情况下执行动态操作。然而,需要小心使用 exec,因为它可能引入安全风险,特别是当执行的代码来自不受信任的来源时。在大多数情况下,最好考虑使用更安全的替代方法,如函数调用、条件语句等。