python学习笔记之调用eval函数出现invalid syntax错误问题


Posted in Python onOctober 18, 2015

pytho的使用和分发完全是免费的,它是一种面向对象的语言,它的。它的类模块支持多态,操作符重载和多重继承等高级概念,并且以python特有的简洁的语法和类型,OOP十分易于使用。python内置了众多预编译并可移植的功能模块,这些功能模块叫做标准库(standard library)。python可以调用C和C++的库,可以被C和C++的程序调用,可以与java组件集成,可以和COM和.Net等框架进行通信,并且可以通过SOAP、XML-RPC和CORBA等接口与网络进行交互,所以,python绝不仅仅是一个独立的工具。

本来是想打算使用eval函数对变量进行赋值的,没想到出现了invalid syntax错误。源代码如下

In [2]: eval('a = 1')
 File "<string>", line 1
 a = 1
  ^
SyntaxError: invalid syntax

百度没百度到结果,最后在stackoverflow上找到了好的答案.

作者的意思是,eval函数只负责对表达式进行处理,并没有赋值的功能,也就是说,eval函数只负责对你的输入进行输出,True还是False又或者是什么东西。但它本身是没有影响当前代码环境的能力的。如果我们想用来进行赋值,那么应该使用exec()函数。看代码:

In [3]: exec('a = 1')
In [4]: a
Out[4]: 1

问题的解决方案已经供出了,那么我们现在再看看官方文档对这两个函数怎么说。

eval(expression, global=None, local=None)

      参数是字符串和可选的global和local。global应当为一个字典文件,local应为一个映射对象。

expression参数将被处理为一个python的表达式(严格来说,是一串条件语句),global和local参数将被用来当做全局和局部的命名空间。

exec(object[,global,[locals])

这个函数能够为python提供动态的代码执行功能。

Python 相关文章推荐
python list中append()与extend()用法分享
Mar 24 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
Python 加密与解密小结
Dec 06 Python
python 多个参数不为空校验方法
Feb 14 Python
基于python的Paxos算法实现
Jul 03 Python
Python实现Selenium自动化Page模式
Jul 14 Python
详解python中的数据类型和控制流
Aug 08 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
Python for i in range ()用法详解
Sep 18 Python
python 实现学生信息管理系统的示例
Nov 28 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
Oct 18 #Python
详解使用Python处理文件目录的相关方法
Oct 16 #Python
详解在Python程序中自定义异常的方法
Oct 16 #Python
Python编程中的文件操作攻略
Oct 16 #Python
详解Python编程中包的概念与管理
Oct 16 #Python
解读Python编程中的命名空间与作用域
Oct 16 #Python
Python中的模块导入和读取键盘输入的方法
Oct 16 #Python
You might like
php 数组二分法查找函数代码
2010/02/16 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
PHP 错误处理机制
2015/07/06 PHP
smarty简单应用实例
2015/11/03 PHP
php实现文件预览功能
2017/05/23 PHP
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
详解vue中axios的封装
2018/07/18 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
2020/10/31 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
python验证码识别的实例详解
2016/09/09 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
Python reversed函数及使用方法解析
2020/03/17 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
普天C++笔试题
2016/03/20 面试题
直接有效的自我评价
2014/01/11 职场文书
个人优缺点自我评价
2014/01/27 职场文书
社区安全检查制度
2014/02/03 职场文书
行政助理工作职责范本
2014/03/04 职场文书
教师师德演讲稿
2014/05/06 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
高三化学教学反思
2016/02/22 职场文书
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫