位置: 编程技术 - 正文

详解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还是60
  • 实务操作中的税会差异有哪些?
  • 增值税发票选择确认平台证书密码是多少
  • 单位缴交的社保和医保还要交其他费用吗
  • 超出标准的公积金怎么交
  • 企业的养老金根据什么扣除
  • 出售子公司全部股权的股权账务处理
  • 开电脑店几年搞活动好吗
  • 联想g40开机屏幕一直闪
  • wiwin11
  • 暂估应付账款是什么科目
  • G40/50-70、SR1000随机Linux改安装Win7系统的实现方法
  • 海康工业相机彩色改黑白设置
  • PQIMountSvc.exe是什么进程 PQIMountSvc进程查询
  • 金融商品转让属于什么服务
  • 公司购买的大型安装设备什么时候转入固定资产
  • 以旧换新方式销售货物,以实际收取的价格
  • 数字马力前端笔试题rgb
  • Symfony2实现在doctrine中内置数据的方法
  • 奥尔梅克
  • php防止sql注入的方法
  • Vue中@change、@input和@blur的区别以及什么是@keyup
  • 什么是资产评估的价值类型
  • rm 删除某个文件
  • 支付版权费用账号是什么
  • 企业投资计入什么科目
  • 账本印花税怎么申报缴纳
  • vue+ele
  • 预支报销单
  • 进料加工出口退税核销最新流程
  • sql server数据表的关联
  • 工商年报纳税总额从哪看
  • 视同销售的增值税是如何计算?
  • 原始凭证审核要点包括
  • 财务专用章是干嘛用的
  • 简易计税项目税率
  • 先确认收入后开票怎么做分录
  • 查账征收个体户经营所得税怎么计算
  • 管理费用现金流量附表指定
  • 普通进项发票怎么做分录
  • 免抵税额什么意思
  • 系统多交税款放在哪里
  • 企业营改增后的会计处理有何变化
  • 房地产开发企业成本核算方法
  • haozipsvc.exe是什么
  • nvidia专业卡性能对比
  • 组策略0x800704ec
  • 笔记本用的上网卡
  • windowsxp的安装方法
  • 无法安装osx
  • awk中执行命令
  • windows10新功能
  • win8正版系统自带
  • win10系统如何删除用户账户
  • perl语言基本命令
  • unity g
  • opencv for linux
  • 用户dsn添加
  • 在linux的主要组成部分中最基础的是哪一项?
  • node-js
  • JavaScript函数中,哪个语句可以返回值
  • django for
  • python三种类型
  • 爱普生如何
  • 青海省地方税务局领导名单
  • 广东为什么用粤做简称?
  • 年度申报个人所得税专项扣除多填了怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设