有关于python内置函数exec和eval一些见解笔记

eval是将函数内的字符串以计算式的方式进行计算并给与外部一个值.

例:

a=eval('1+1')

print(a)

>>>>2

  

但是如果出现在函数内部字符串中进行赋值会抛出异常SyntaxError: invalid syntax

a=eval('a=1+1')

print(a)

>>>>SyntaxError: invalid syntax

  

很显然只能在外部进行给与变量名,内部不可以


那么有没有可以进行再内部赋值的函数呢?

有>exec是python3新版本出来不久,可以再内部进行赋值语句

 exec('a=1+1')
2 print(a)
>>>2

 

但是在外部不可以进行赋值,刚好和eval函数相反,会返回none

a =exec('1+1')
b =exec('b=1+1')
print(a)
print(b)

>>>none
>>>none

还有一些比较小众的方法,我是在知乎上看到的,忘记是在那个人哪里看到的,我展示问题来

问题是,怎么让含有多个元素的list自动生成 变量名=[]

解答

a=['A','B','C']
for i in a:
    exec('{}=[]' % i)

 

posted @ 2019-04-17 21:52  花名k  阅读(254)  评论(0编辑  收藏  举报