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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 1,305评论 0 0
  • 1. abs(x) abs()函数返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的...
    chen_000阅读 425评论 0 0
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,816评论 0 5
  • 1. abs(x) abs()函数返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的...
    TENG书阅读 438评论 0 0
  • 负屃,龙生九子的老八。身似龙,雅好是斯文,盘绕在石碑头顶。 负屃十分喜好闪耀着艺术光辉的碑文,它就甘愿化作图案文龙...
    州芷明渊阅读 1,895评论 0 1