Python eval(),python中eval()是什么意思

  Python eval(),python中eval()是什么意思

  

  eval函数的使用方法

  函数的作用:

  计算表达式的值。也就是说,它要执行的Python代码只能是单一的运算表达式(注意eval不支持任何形式的赋值运算),而不是复杂的代码逻辑,类似于lambda表达式。

  函数定义:

  eval(expression,globals=None,locals=None)参数说明:

  Expression:必选参数,可以是字符串,也可以是任意代码对象实例(可以由compile函数创建)。如果是字符串,它将被分析和解释为Python表达式(使用全局和局部名称空间)。

  Globals:可选参数,表示全局名称空间(存储全局变量)。如果提供,它必须是一个字典对象。

  Locale:可选参数,表示当前的本地名称空间(存储本地变量)。如果提供,它可以是任何映射对象。如果忽略此参数,它将采用与globals相同的值。

  如果全局和本地都被忽略,它们将采用调用eval()函数的环境的全局名称空间和本地名称空间。

  返回值:

  如果expression是一个code对象,并且在创建code对象时,compile函数的mode参数为‘exec’,那么eval()函数的返回值为None;

  否则,如果expression是输出语句,比如print(),eval()返回的结果是None;

  否则,表达式expression的结果就是eval()函数的返回值。

  实例:

  x=10

  deffunc():

  y=20

  a=eval(x y )

  打印( a: ,a)

  b=eval(x y ,{x:1, y:2})

  打印( b: ,b)

  c=eval(x y ,{x:1, y:2},{y:3, z:4})

  打印( c: ,c)

  d=eval(print(x,y))

  打印( d: ,d)

  Func()输出结果:

  对于变量A,忽略eval函数的globals和locals参数,所以变量X和变量Y都取调用eval函数的环境范围内的变量值,即:x=10,y=20,a=x y=30。

  对于变量B,eval函数只提供了globals参数而忽略了locals参数,所以locals会取globals参数的值,即:x=1,y=2,b=x y=3。

  对于变量C,提供了eval函数的globals参数和locales,所以eval函数会先从所有作用域globals中找到变量X,从局部作用域locales中找到变量Y,即:x=1,y=3,c=x y=4。

  对于变量D,返回值为None,因为print()函数不是计算表达式,没有计算结果。

  热门IT软件开发工作室,大量免费python视频教程,欢迎在线学习!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: