第九章、python中常用函数及方法(9.7-9.8)------解析函数eval()与exec()、过滤函数filter()

 目录
9.7 python的解析函数eval()与exec()
9.8 python的过滤函数filter()

9.7 python的解析函数eval()与exec()

        解析函数eval()是执行一个表达式,exec()是执行一个或多个代码语句,单个代码语句是由一个表达式或多个表达式组成的。eval(expression,globals,locals)和exec(source,globals,locals),其中,参数expression是字符串格式的表达式,source是字符串格式的代码语句或代码对象(code object,代码语句的字节码形式)。两者中参数globals表示是全局作用域的命名空间,locals表示是当前局部作用域的命名空间。当参数globals,locals缺省时,eval和exec是按程序默认的LEGB原则来引用名称的,当存在参数globals时,先匹配locals中的,未查找到的再匹配globals中的,当都未查找到时,只能引用内置空间命名空间Built-in中的名称。在这里要注意表达式和代码语句的区别,前面4.3.3章节已经讲过。

      eval可以用在把字符串格式转换为其它数据类型,比如:字符串格式的列表转换为列表,用eval可以实现一些计算,用exec可以加载且激活代码语句,使得代码语句可以被调用。eval可以有返回值,exec是没有返回值的,返回值为None。另外,exec对已经加载且激活的语句是直接执行,

猜你喜欢

转载自blog.csdn.net/thefg/article/details/129769394