Python3 exec 函数

描述

Python3 exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。

语法

以下是 exec 的语法:

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

参数

  • object:必选参数,表示需要被指定的Python代码。它必须是字符串或code对象。如果object是一个字符串,该字符串会先被解析为一组Python语句,然后在执行(除非发生语法错误)。如果object是一个code对象,那么它只是被简单的执行。
  • globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象。
  • locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与globals相同的值。

返回值

exec 返回值永远为 None。

实例

以下展示了使用 exec 的实例:

实例 1

  1. >>>exec('print("Hello World")')
  2. Hello World
  3. # 单行语句字符串
  4. >>> exec("print ('baidu.com')")
  5. baidu.com
  6. # 多行语句字符串
  7. >>> exec ("""for i in range(5):
  8. ... print ("iter time: %d" % i)
  9. ... """)
  10. iter time: 0
  11. iter time: 1
  12. iter time: 2
  13. iter time: 3
  14. iter time: 4

实例 2

  1. x = 10
  2. expr = """
  3. z = 30
  4. sum = x + y + z
  5. print(sum)
  6. """
  7. def func():
  8. y = 20
  9. exec(expr)
  10. exec(expr, {'x': 1, 'y': 2})
  11. exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4})
  12. func()

输出结果:

  1. 60
  2. 33
  3. 34