美文网首页
Python函数-eval()

Python函数-eval()

作者: 听风1996 | 来源:发表于2018-04-08 19:42 被阅读5次

eval(source[, globals[, locals]])

作用:
将字符串str当成有效的表达式来求值并返回计算结果。参数:source:一个Python表达式或函数compile()返回的代码对象;globals:可选。必须是dictionary;locals:可选。任意map对象。
实例:

#################################################
字符串转换成列表
>>>a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
>>>type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
>>> type(b)
<type 'list'>
#################################################
字符串转换成字典
>>> a = "{1: 'a', 2: 'b'}"
>>> type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
{1: 'a', 2: 'b'}
>>> type(b)
<type 'dict'>
#################################################
字符串转换成元组
>>> a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
>>> type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
>>> type(b)
<type 'tuple'>
#test eval() and locals()
x = 1
y = 1
num1 = eval("x+y")
print (num1)

def g():    
    x = 2    
    y = 2  
    num3 = eval("x+y")    
    print (num3)        
    num2 = eval("x+y",globals())   
    #num2 = eval("x+y",globals(),locals())    
    print (num2)
    
g()

print locals()["x"]
print locals()["y"] 
print globals()["x"]
print globals()["y"]

num1的值是2;num3的值也很好理解,是4;num2的值呢?由于提供了globals()参数,那么首先应当找全局的x和y值,也就是都为1,那么显而易见,num2的值也是2。如果注释掉该句,执行下面一句呢?根据第3)点可知,结果为4

eval()使用原因:
1)在编译语言里要动态地产生代码,基本上是不可能的,但动态语言是可以,意味着软件已经部署到服务器上了,但只要作很少的更改,只好直接修改这部分的代码,就可立即实现变化,不用整个软件重新加载。
2)在machin learning里根据用户使用这个软件频率,以及方式,可动态地修改代码,适应用户的变化。

注:

 eval有安全性问题,比如用户恶意输入就会获得当前目录文件

待更新

来源:https://www.cnblogs.com/guyuyuan/p/6884115.html

相关文章

  • 08.eval、exec和其他函数

    eval、exec和其他函数 一、eval函数 1). eval函数的功能 将字符串形式的变量转换成Python的...

  • Python语法之eval()函数

    eval()函数 python中的eval()函数就是实现list、dict、tuple与str之间的转化;str...

  • Python函数-eval()

    eval(source[, globals[, locals]]) 作用:将字符串str当成有效的表达式来求值并返...

  • Python eval 函数

    Python eval 函数学习与总结。 基本用法 简介 eval() 函数用来执行一个字符串表达式,并返回表达式...

  • python eval 函数

    eval 函数 eval() 函数十分强大 —— 将字符串 当成 有效的表达式 来求值 并 返回计算结果 案例 -...

  • Python文章集合

    函数的学习 Python eval函数的学习 环境搭建 Python dlib的安装 库的学习 知识点整理 Ana...

  • eval

    eval() 将去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容 eval() 函数经常...

  • python-eval函数

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

  • Python内置函数eval()

    eval(expression, globals=None, locals=None) 动态执行一个表达式的字符串...

  • python的eval函数

    今天工作中看见了一段代码,其中有一个eval()函数,没有见过,故查之。 功能:将字符串str当成有效的表达式来求...

网友评论

      本文标题:Python函数-eval()

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