* 作者:煮酒品茶 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
~~~
- python核心
- python27编译安装
- 原处修改以及拷贝
- loop
- 内置的变量
- 内置类型
- python内置方法
- 内置方法列表
- 求绝对值-abs
- 求商取余-divmod
- 交换输入-input
- [未完]文件打开函数-open
- staticmethod
- 判断迭代对象真假all
- 判断迭代对象真假any
- 枚举对象enumerate
- 整数转换类型int
- ascii码转换ord-chr-unichr
- 类型转换str
- python执行字符串表达式eval
- 类型判断isinstance
- 数学计算pow
- 数学计算和sum
- 不可变集合frozenset
- zip
- 比较cmp
- basestring类型判断
- 反转序列迭代器resversed
- python模块
- glob
- sys.argvgetopt-argparse
- os
- sys
- requests
- random
- time
- date
- zlib-gzip-bz2-zipfile-tarfile
- ftp
- paramiko
- pexpect
- 数据库模块
- redis
- mysql
- mongodb
- __builtin__
- 学生PYTHON分享
- 学生运维分享