🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
* 作者:煮酒品茶 tea * 博客:http://www.zwhset.com http://cwtea.blog.51cto.com * 目前在京峰教育担任python讲师 #0、python代码执行eval > eval最常见的就是把字符转类型转换成一些python内置类型,如果需要把代码层的也转换的话需要用到exec函数 #1、函数原型 ~~~ eval(...) eval(source[, globals[, locals]]) -> value #返回一个值 这个souce可以是python的表达式或者是一个complie()对象 globals参数必须是一个字典 locals可以是一个zipping ~~~ #2、样例 ~~~ In [6]: a = (1,2,3) In [7]: b = {'name':'zwhset','age':14} In [8]: eval(a) # 转化一种元组类型,参数传入错误 --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-8-f8a363312888> in <module>() ----> 1 eval(a) TypeError: eval() arg 1 must be a string or code object In [9]: c = str(a) # 对元组a转换成字符串并赋值给c In [10]: d = str(b) In [13]: c,d Out[13]: ('(1, 2, 3)', "{'age': 14, 'name': 'zwhset'}") In [14]: eval(c) #eval.. Out[14]: (1, 2, 3) In [15]: eval(d) Out[15]: {'age': 14, 'name': 'zwhset'} In [16]: type(eval(d)) #执行字符串表达式转换变成一个字典 Out[16]: dict In [17]: e = 'g = 1' # 一个语句 In [18]: eval(e) # 用eval执行一个语句,python代码出错,需要用到后面的exec方法。 File "<string>", line 1 g = 1 ^ SyntaxError: invalid syntax ~~~