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)