python 抽象语法树_用python演示一个简单的AST(抽象语法树)
假设对‘a + 3 * b‘进行解释,其中a=2,b=5
代码很简单,就不再进行详细的解释了。
Num = lambda env, n: n
Var = lambda env, x: env[x]
Add = lambda env, a, b:_eval(env, a) + _eval(env, b)
Mul = lambda env, a, b:_eval(env, a) * _eval(env, b)
_eval = lambda env, expr:expr[0](env, *expr[1:])
env = {'a':2, 'b':5}
tree = (Add, (Var, 'a'),
(Mul, (Num, 3),
(Var, 'b')))
print _eval(env, tree)
输出结果为17
python 抽象语法树_用python演示一个简单的AST(抽象语法树)相关推荐
- python新手练习项目_适合Python 新手的5大练手项目,你练了么?
已经学习了一段时间的Python,如果你看过之前W3Cschool的文章,就知道是时候该进去[项目]阶段了. 但是在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? W3Cschool首先有两 ...
- python ftp服务器限速_用 Python 快速实现 HTTP 和 FTP 服务器
用 Python 快速实现 HTTP 服务器 有时你需临时搭建一个简单的 Web Server,但你又不想去安装 Apache.Nginx 等这类功能较复杂的 HTTP 服务程序时.这时可以使用 Py ...
- python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆
用pygame做一个简单的python小游戏---七彩同心圆 用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便 ...
- python照片转卡通_用Python做一个网站,照片生成漫画头像,有这个网站就够了。...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进阶者 ( 想要学习Python?Pyth ...
- 用Tkinter打造自己的Python IDE开发工具(1)建立一个简单的代码编辑器
用Tkinter打造自己的Python IDE开发工具(1)建立一个简单的代码编辑器 很多Python初学者,安装完Python后,已经包含了IDLE代码开发和调试系统.都会再安装各种Python开发 ...
- python虚拟机 基于寄存器_虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩...
转载:http://rednaxelafx.iteye.com/blog/492667 大前天收到一条PM: 引用 你好,很冒昧的向你发短消 息,我现在在看JS引擎,能过看博客发现你对js engin ...
- python大牛 关东升_《Python从小白到大牛》第4章 Python语法基础
本章主要为大家介绍Python的一些语法,其中包括标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 标识符和关键字 任何一种计算机语言都离不开标识符和关键字,因此下面将详细介绍Pyth ...
- 用python制作3d动画_-用 Python 做科学计算--Visual-制作3D演示动画
# Visual-制作3D演示动画 [Visual](http://vpython.org) 是Python的一个简单易用的3D图形库,使用它可以快速创建3D场景.动画.和TVTK相比它更加适合于创建 ...
- python代码颜色搭配_修改Python IDLE代码配色及语法高亮主题
文章1 原出处:http://wangye.org/blog/archives/634/ 文章2 原出处:http://huacnlee.com/blog/share-someting-python- ...
最新文章
- 别在 Java 代码里乱打日志了,这才是正确的日志打印姿势!
- 爱尔兰 APC 微生物组研究所—菌群研究的全球领航者之一
- windows一个目录下最大文件数目
- SpringBoot学习(二)探究Springboot启动机制
- P1742 最小圆覆盖
- Python Pytest装饰器@pytest.mark.parametrize用例数据驱动(三)
- designer pyqt5 界面切换_PyQt5快速上手基础篇3-设置窗口标题和图标
- 整理各个平台的访问入口及快速推文的方法
- 关于Maven本地仓库中存在依赖时,重新下载was cached in the local repository错误
- 学python需要什么基础-学Python需要什么基础知识?零基础可以学Python吗?
- RHEL/Centos下VSFTPD服务器搭建
- java对接微信公众号
- 计算机二级显示用户不存在,计算机二级考试最常见的错误集合
- [转载]美国夫妻生活如何在钱上更亲密
- Ubuntu虚拟机全屏问题
- 商城系统选择技巧归纳
- 晚上改吃水果+牛奶(防止营养不够)
- 【机器学习百科全书目录】PRML ESL MLAPP 西瓜书 花书 RLAI 统计学习方法 蒲公英书
- 如何写新产品开发报告书
- 拖延症患者的自我反省