先看一下exec函数在命令行中的简单效果示例,完成对某个变量的赋值 *** 作,使一个字符串的值和放在代码里运行没有区别:
>>> exec('bed=5')
>>> bed
5
>>> exec('bedict={}')
>>> bedict
{}
假定输入的值为10, 2, [[1, 3], [10, 4]]
,那么我们想要通过解包为V, n, vw
这三个变量赋值,那么相应的代码为:
# V, n, vw = 10, 2, [[1, 3], [10, 4]]
exec('V, n, vw = ' + input())
print(V, n, vw)
结果为:10 2 [[1, 3], [10, 4]]
下面是对Python3中exec函数的介绍
- 描述:exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。
- 语法:
exec(object[, globals[, locals]])
- 参数
object:必选参数,表示需要被指定的 Python 代码。它必须是字符串或 code 对象。如果 object 是一个字符串,该字符串会先被解析为一组 Python 语句,然后再执行(除非发生语法错误)。如果 object 是一个 code 对象,那么它只是被简单的执行。
globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象。
locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与 globals 相同的值。 - 返回值:exec 返回值永远为 None。
- 实例1:执行打印语句
>>>exec('print("Hello World")') Hello World
- 实例2:多行语句字符串
>>> exec ("""for i in range(5): ... print ("iter time: %d" % i) ... """) iter time: 0 iter time: 1 iter time: 2 iter time: 3 iter time: 4
- 实例3
输出结果:x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y = 20 exec(expr) exec(expr, {'x': 1, 'y': 2}) exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4}) func()
60 33 34
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)