知行编程网知行编程网  2022-12-06 03:30 知行编程网 隐藏边栏  2 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python eval() 怎么用的相关知识,包括python中break怎么用,以及小组赛规则这些编程知识,希望对大家有参考作用。



如何使用 python eval()



eval函数的使用方法


函数的作用:

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


函数定义:

eval(expression, globals=None, locals=None)


参数说明:

expression:必选参数,可以是字符串或任意代码对象实例(可由编译函数创建)。如果它是一个字符串,它被解析并解释为 Python 表达式(使用全局和局部命名空间的 globals 和 locals 参数)。

globals:可选参数,代表全局命名空间(存放全局变量),如果提供,必须是字典对象。

locals:可选参数,表示当前局部命名空间(存放局部变量),如果提供,可以是任意映射对象。如果省略此参数,它将采用与全局变量相同的值。

如果全局变量和局部变量都被省略,它们将采用调用 eval() 函数的环境的全局命名空间和局部命名空间。


返回值:

如果expression是一个代码对象,创建代码对象时,compile函数的mode参数是'exec',那么eval()函数的返回值为None;

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

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


实例:

x = 10
def func():
  y = 20
  a = eval('x + y')
  print('a: ', a)
  b = eval('x + y', {'x': 1, 'y': 2})
  print('b: ', b)
  c = eval('x + y', {'x': 1, 'y': 2}, {'y': 3, 'z': 4})
  print('c: ', c)
  d = eval('print(x, y)')
  print('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参数和locals,那么eval函数会先从所有作用域的globals中寻找变量x,从局部作用域locals中寻找变量y,即:x = 1 , y = 3 , c = x + y = 4。

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

python学习网,大量的免费
,欢迎在线学习!

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享