eval是Python中比较常用的函数之一,该函数可以计算字符串中有效的表达式,并返回结果,还可以将字符串转成相应的对象,还可以将利用反引号转换的字符串再反转回对象,本篇文章为大家详细的介绍一下Python中eval的基本用法! Python中eval的用法: Python eval()函数的功能:将字符串str当成有效的表达式来求值并返回计算结果。 语法: eval(source[,globals[,locals]]) -> value 参数: source:一个Python表达式或函数compile()返回的代码对象。 blobals:可选。必须是dictionary locals:可选。任意map对象 如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。 Python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。我们可以用print(locals())来查看该函数体内的所有变量名和变量值。 x = 1 y = 1 num = eval("x+y") print('num',num) def g(): x = 2 y = 2 num1 = eval("x+y") print('num1',num1) num2 =eval('x+y',globals()) print('num2',num2) num3 = eval("x+y",globals(),locals()) print('num3',num3) g() num2 num1 4 num2 2 num3 4 解析:num2因为有globals所以是全局变量,执行后结果为4;num3既有globals又有locals,仅在此情况下,优先采用locals的值,故计算结果是2。 |
|
来自: 老男孩IT教育 > 《Python培训》