-- TOC --
这个内置接口有时能在代码中起到“黑科技”的作用,但是使用一定要小心。
创建a,b,c,d
4个变量:
for i,n in zip(r,('a','b','c','d')):
print(n,'=',i)
exec(n + '=' + str(i))
创建INTRA_ANGULAR<n>
变量,n从2到34,共33个变量:
# intra prediction modes
INTRA_PLANAR = 0
INTRA_DC = 1
for i in range(2,34+1):
exec(f'INTRA_ANGULAR{i} = i')
如果不使用globals参数,exec的执行就是在current scope内!
我在P1025(gps)项目中使用过这个技巧。
程序界面有一个脚本窗口,可输入python代码,点击运行的时候,程序将用户输入的python代码,提交给exec接口去执行。
对expression做evaluation。
关键就是理解什么是expression。简单地说,等号右边或者没有等号的statement都是expression。
>>> a = eval('1+2+3')
>>> a
6
eval有的时候与repr一起使用,可以起到还原对象的作用:
>>> d = {'a':1,'b':2}
>>> d
{'a': 1, 'b': 2}
>>> eval(repr(d))
{'a': 1, 'b': 2}
本文链接:https://cs.pynote.net/sf/python/202211092/
-- EOF --
-- MORE --