位置: 编程技术 - 正文

详解python eval函数的妙用(eval()函数python)

编辑:rootadmin

推荐整理分享详解python eval函数的妙用(eval()函数python),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中eval函数作用,python eval函数用法,python中eval()函数的用法讲解,eval()函数python,python里面eval函数,python里面eval函数,python里面eval函数,python3中eval函数用法简介,内容如对您有帮助,希望把文章链接给更多的朋友!

python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果。

函数定义:

将字符串str当成有效的表达式来求值并返回计算结果。globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。

python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。我们可以用print (locals())来查看该函数体内的所有变量名和变量值。

Python版本兼容:

Python2.7 Python3.x

eval()主要作用:

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

英文解释:

The arguments are a string and optional globals and locals. If provided, globals must be a dictionary. If provided, locals can be any mapping object.

详解python eval函数的妙用(eval()函数python)

The expression argument is parsed and evaluated as a Python expression (technically speaking, a condition list) using the globals and locals dictionaries as global and local namespace. If the globals dictionary is present and lacks ‘__builtins__', the current globals are copied into globals before expression is parsed. This means that expression normally has full access to the standard builtins module and restricted environments are propagated. If the locals dictionary is omitted it defaults to the globals dictionary. If both dictionaries are omitted, the expression is executed in the environment where eval() is called. The return value is the result of the evaluated expression. Syntax errors are reported as exceptions. Example:

例子:

结果:1

例子2, 测试globals, locals

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

实例展示:

可以把list,tuple,dict和string相互转化。

安全问题:

因为eval的特型, 很可能被黑客利用,造成安全问题。

怎么避免安全问题?

1、自行写检查函数;

2、使用ast.literal_eval代替

标签: eval()函数python

本文链接地址:https://www.jiuchutong.com/biancheng/372278.html 转载请保留说明!

上一篇:Python算法之图的遍历(python图论算法)

下一篇:python定时利用QQ邮件发送天气预报的实例

  • 小规模纳税人收入超过500万怎么办
  • 个税的计算过程
  • 待转销项税额是几级科目
  • 增值税减免税申报明细表举例
  • 普通发票金额和申报工资有关系吗
  • 装饰公司开票内容怎么填
  • 个税反推税前工资速算
  • 哪些合同不需要缴纳印花税的通知
  • 银行卡收单机构外包业务管理指引
  • 资源税是否需要计提?
  • 税务局每年都会查我公司虚开发票
  • 跨年发票还可以入账吗
  • 个人给单位干的小工程需代扣个税吗?
  • 园林绿化公司前景如何
  • 申报进项税额
  • 研发费加计扣除75%政策
  • 商铺租金收入税是多少税率
  • 如果没有预缴就开票会怎样?
  • 财务做账借贷分别表示
  • 发票和款未付可以抵扣吗
  • 企业外籍个人子女教育补贴
  • 电脑win10点开始没反应
  • 收到银行承兑汇票后,如何取钱
  • 10款手机赚钱软件下载
  • 拍卖获得收入个税
  • PHP:apache_response_headers()的用法_Apache函数
  • wordpress用什么语言开发
  • linux解压安装
  • 应收票据影响现金流吗
  • 劳务费可以抵扣进项吗
  • 电力安装公司都有什么业务
  • php获取url内容
  • php框架推荐
  • 鸳鸯小鸟
  • vue路由用法
  • php数据查询
  • 林木苗圃
  • 无法支付其他应用怎么办
  • 小企业其他应收款坏账处理
  • 社会保险基数怎么办
  • 公司年夜饭怎么说话
  • phpcms生成html
  • 企业发生的直接进入当期损益的期间费用包括
  • 应收账款红冲什么意思
  • 差旅费报销金额大于实际发生金额
  • 计提应收账款坏账准备属于谨慎性吗
  • 房地产企业的固定资产比率越高越好吗
  • 税务ukey版怎么读入发票
  • 其他应付款贷方什么意思
  • 未认证发票进项怎么处理
  • 赠送电影票文案
  • 将购买的货物用于交际应酬可以抵扣进项税额吗
  • 纳税人延期缴纳税款
  • 环境保护税法自什么时候起施行
  • 算账的意思是什么?
  • 怎么统计每日产量
  • sql server 复制表中行数据
  • sqlserver正则表达式替换列
  • mysql修改密码错误
  • AppleMobileDeviceService.exe是什么进程?AppleMobileDeviceService.exe是病毒吗?
  • debian系列
  • usb3.0接口可以插优盘吗
  • yAssistSe.exe是什么进程
  • windows8.
  • centos7.5切换图形界面
  • wbs是什么的缩写
  • Ubuntu 8.10 Server Ruby 的安装方法
  • win8系统开机
  • linux开启ssh服务失败
  • nodejs bull
  • 批处理语言 从入门到精通
  • vue如何处理跨域
  • 详解如何使用pcem安装windows 98 csdn
  • python中字符串的方法
  • JavaScript中的this
  • python的设置
  • Android java.lang.IllegalArgumentException: pointerIndex out of range
  • 国家税务总局电子发票
  • 农村集体土地承包法
  • 免抵退税办法不得抵扣的进项
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设