2018-05-14 python的exec/eval/compile的用法

exec eval compile区别:

exec 执行python代码,无论是存储在对象/文件/字符串内都可执行
eval 执行存储于对象或字符串内的python表达式
compile 对代码预编译,可防止重复编译一段代码

exec

格式:exec obj
代码

>>> exec '''for i in range(3):
...     print i
... '''
0
1
2

eval

格式:eval( obj[, globals=globals(), locals=locals()] ) 全局变量和局部变量
代码:

>>> a = 2
>>> eval('a * 5')
10

compile

格式:compile( str, file, type) file代码存放地方 type有三类:eval single配合单一语句exec使用 exec配合exec多语句使用
代码:

# 执行python表达式
>>> eval_code = compile('3 * 4', '', 'eval')
>>> eval(eval_code)
12
# 执行python单一语句
>>> single_code = compile('print "hello word!"', '', 'single')
>>> exec(single_code)
hello word!
# 执行python多条语句
>>> exec_code = compile("""for i in range(5):
...     print i""", '', 'exec')
>>> exec(exec_code)
0
1
2
3
4

你可能感兴趣的:(2018-05-14 python的exec/eval/compile的用法)