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)