美文网首页
python-eval函数

python-eval函数

作者: longgb246 | 来源:发表于2018-09-23 17:23 被阅读0次

[toc]

一、基本用法

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

eval 最直接的作用就是把字符串当成有效的表达式来求值并返回计算结果。
如下:

a = 1
b = 2
print("eval('a+b') : ", eval('a+b'))

>>> eval('a+b') : 3

python包括全局变量globals和局部变量locals。可以直接打印出来。

print(globals())
print(locals())

二、使用 dict

eval 后面的参数是放字符串的全局变量和局部变量的表达式。

a = 1
b = 2
def local_var():
    a = 3
    b = 4
    print("eval('a+b') : ", eval('a+b'))
    print("eval('a+b', globals()) : ", eval('a+b', globals()))
    print("eval('a+b', globals(), locals()) : ", eval('a+b', globals(), locals()))
    print("eval('a+b', {'a': 8, 'b': 9}) : ", eval('a+b', {'a': 8, 'b': 9}))
    print("eval('a+b', {'a': 8, 'b': 9}, {'c': 1, 'b': 2}) : ", eval('a+b', {'a': 8, 'b': 9}, {'c': 1, 'b': 2}))
local_var()

>>> eval('a+b') : 7
>>> eval('a+b', globals()) : 3
>>> eval('a+b', globals(), locals()) : 7
>>> eval('a+b', {'a': 8, 'b': 9}) : 17
>>> eval('a+b', {'a': 8, 'b': 9}, {'c': 1, 'b': 2}) : 10

看上面的代码可以理解 eval 后面2个参数的作用。相当于给表达式添加临时的作用域,并不会污染真正的globals(), locals()变量的值,仅仅通过字典即可完成作用域的传递。

也可以用于生成一个函数:

func = eval('lambda x: 1.0 / (1 + c*((x - k) / f))', dict({'k': 1, 'f': 2.0}, c=3))
func(2)

>>> 0.4

相关文章

  • python-eval函数

    [toc] 一、基本用法 eval 最直接的作用就是把字符串当成有效的表达式来求值并返回计算结果。如下: pyth...

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

网友评论

      本文标题:python-eval函数

      本文链接:https://www.haomeiwen.com/subject/xelqoftx.html