打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python 中eval、exec、execfile、compile的使用
一、eval 将字符串转换成有效的Python表达式
eval(expression[,globals[,locals]])
(一)expression的一个表达式,可以是:‘1+1’,‘wang’(需定义),‘x+1’(x需定义)
1
print eval ('2+2')、
2
= "zhejiang"
print eval('w')
3
= 1
= 2
print eval('x+1,y**3')
(二)globals是一个字典:globals = {'x':3,'y':3}
globals = {'x':3,'y':3}
print eval('x+1,y**3',globals)
(三)locals是一个映射:所谓映射,就是引用的对象有具体值,取所引用对象的值。
= 1
= 2
print eval('x+1,y**3',locals())
二、exec,将一个字符串编译成字符形式,并执行该表达式
1
exec('print "i am good"')
2
globals = {'x':3,'y':3}
exec('print x+2+y*3'in globals
三、execfile,执行一个文件
execfile(filename[,globals[,locals]])
(一)execfile(r'C:\Documents and Settings\Administrator\b.py')
文件b.py中的内容:print eval ('2+1'),运行结果是:3
(window下用原始字符串,所以加r)
(二)
globals = {'x':3,'y':3}
execfile(r'C:\Documents and Settings\Administrator\b.py',globals)
文件b.py中的内容:print eval ('x+y'),运行结果是:6
(三)
= 1
= 2
execfile(r'C:\Documents and Settings\Administrator\b.py',locals())
文件b.py中的内容:print eval ('x+y'),运行结果是:3
四、compile编译字符串或一个文件
compile(source,filename,mode)
source就是一个字符串
filename就是一个文件(地址)
mode分evalexec两个
1print compile('print "i am good"','','exec')
运行结果:<code object <module> at 00ABCD10file "", line 1>
2eval(compile('print "i am good"','','exec'))
运行结果:i am good
3exec(compile('print "i am good"','','exec'))
运行结果:i am good
4:w = "zhejiang"
print eval(compile('w','','eval'))
运行结果:zhejiang
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
python之exec,eval,execfile,compile
python中的exec()、eval()以及complie()
《源码探秘 CPython》44. 解析PyCodeObject对象
被企业禁用的,那些python中的内置强大函数
More Python知识
python函数专讲:exec执行函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服