位置: 编程技术 - 正文

详解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邮件发送天气预报的实例

  • 营业税金及附加包括哪些
  • 多交企业所得税可以放弃退税吗
  • 客户发票弄丢了应该如何补救
  • 劳务公司拿什么来做成本
  • 车辆购置税计入成本吗
  • 残疾人保障金的计算方法
  • 法人其他应付款在借方表示
  • 附加税退税申请书怎么写
  • 出售无形资产净收益是收入吗
  • 通过应交税费核算的
  • 收到法人的借款
  • 外购白酒用于个人销售吗
  • 现金买东西可以退吗
  • 我公司开给对方13个点发票,后期我公司怎么抵税
  • 企业会计准则应用案例
  • 职业培训和职业技能培训的区别
  • 税收理财跟税收筹划有什么区别?
  • 子公司的注册资金需要母公司股东出吗?
  • 个人所得税算少了怎么办
  • 在建工程的施工方案可以外传吗
  • 公司租用员工的车租车协议
  • uniapp页面loading
  • 长期借款科目的期末余额反映尚未偿还的借款本金
  • 如何计算企业年度人均产值
  • 圆顶山遗址
  • vue经典案例
  • php和ajax
  • 公司收到投资款怎么写收据?
  • 饿了么指定单
  • php高并发api接口怎么处理
  • token验证器
  • uniapp h5路由模式
  • 外贸出口退税操作流程
  • 煤炭贸易公司的业务流程
  • thinkphp route
  • 小规模升级一般纳税人后可以降为小规模吗
  • 成本费用做账
  • 其他应收款坏账处理
  • 全年一次性奖金税率表2023
  • java删除类
  • mysql备份导入
  • 股东转股怎么办理
  • 给员工购买住房公积金是先办卡吗?
  • sql server 2008 2014
  • 收到缴纳个人所得税短信
  • 收到备用金会计分录
  • 电商收服务费合法吗
  • 银行承兑汇票如何签收
  • 出口收汇核销单是什么意思
  • 企业退款给个人多久到账
  • 自己公司刷自己的信用卡
  • 一般纳税人附加税
  • 建造合同收入怎么算
  • 残保金是公司交还是员工交
  • 进项税额转出怎么操作
  • 深入sql编程开发与优化
  • 案例如何分析
  • 断电恢复
  • sql中nullif
  • win7系统的笔记本电脑有哪些
  • windows2003怎么样
  • windows2003 64位注册码 序列号 激活码
  • windowsxp的功能介绍
  • linux如何配置双网卡
  • win10预览版和正式版区别
  • win8怎么设置自启动
  • windows8c盘满了怎么清理
  • windows7 sp1升级包
  • jquery select2的使用心得(推荐)
  • jquery实现隔行变色的分享特效页面
  • Backbone.js 0.9.2 源码注释中文翻译版
  • javascript用户名验证
  • Python selenium 三种等待方式解读
  • js接收excel文件流
  • Flow之一个新的Javascript静态类型检查器
  • 陕西国家电子税务局2.0
  • 海淀区地税局电话
  • 信用体系建设
  • 请领导审核怎么说
  • 电脑上装什么软件开税票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设