位置: 编程技术 - 正文

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

  • 离境退税政策文件
  • 各行业的税负率表2022
  • 会计继续教育还需要学吗
  • 预收账款可以开票吗
  • 工会经费发放奖金需要代扣个税吗
  • 贸易公司经营范围有限制吗
  • 销售费用可以提取现金吗
  • 发生哪些情形的应判定为重大电力安全隐患
  • 转让房产的单位和个人都需要缴纳契税吗?
  • 发票隔月报送可以么?
  • 收到进度款开票如何做账务处理合适呢?
  • 养老保险缴纳比例是固定的吗
  • 建安行业外地预缴工会经费
  • 当月取得的进项必须当月勾选吗
  • 开水电发票要增加什么经营项目?
  • 三证合一后还要去税务局吗
  • 土地增值税纳税地点
  • 一般纳税人能开普票吗,几个点
  • 钢板租赁费用
  • 企业计提的工资薪金支出可以在税前扣除
  • 委托加工物资增值税怎么计算
  • 红字专用发票信息表编号在哪儿
  • 残保金征收单位
  • 利润分成的会计分录
  • 佣金可以开票吗
  • macbookzen
  • 代发工资开的发票可以抵扣吗?
  • 公司购入汽车可以算做注册资本吗
  • 对公转账存款
  • php foo
  • 发票开具时限是怎么规定的
  • Symfony2针对输入时间进行查询的方法分析
  • 工资零申报3个月后不能申报了吗
  • vue3加ts
  • 转让企业要交什么税
  • html5简单吗
  • echarts series name
  • split 文件分割
  • 开了红字信息表当月怎么做账
  • 增值税留抵税额科目如何使用
  • 工会经费缴纳后会返还吗
  • idea快速生成lambda
  • 个税申报信息怎么填
  • MicrosoftSQLserver2014可以卸载吗
  • 金融商品转让一半增值税
  • 农业发展公司有没有库存商品的
  • 收到退回的企业所得税分录
  • 政府补助属于营业外收入吗
  • 土地使用权的界定
  • 合理损耗如何计算单位成本
  • 安全生产费会计核算办法
  • 坏账准备的计提分录
  • 股权转让如何办理
  • 行政事业单位会计风险来源于日常的会计活动
  • 差旅津贴和差旅补贴需要申报个税吗?
  • 企业购买加油卡出售怎么做账
  • 小企业建账选哪种会计制度
  • select语句中的select*说明
  • mysql8.0存储过程
  • mysql优化技巧实战
  • Win10 Mobile 10572预览版上手体验视频
  • linux怎么看历史记录
  • windowsxp打不开
  • win10自带邮箱无法使用126
  • linux扩充inode
  • oracle linux版
  • js中如何实现数字相加
  • Cocos2dx3.2 Crazy Tetris update 定时更新 游戏逻辑处理
  • html+css代码
  • window.navigate 与 window.location.href 的使用区别介绍
  • android系统介绍
  • nodejs开发博客
  • linux中unzip解压完看不到文件
  • Unity 使用WWW类同步加载资源
  • python写一个复制文件的程序
  • javascript原生函数的源代码
  • 电子发票开票失败怎么回事?
  • 免征船舶吨税的范围
  • 个体户是否需要缴纳企业所得税
  • 广东省电子税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设