本文参考了以下资料:
Environment Diagrams
CS 61A Discussion1: Environment Diagrams, Control
Environment Diagrams 在线练习:
Visualize Python code execution

Environment Diagrams 是什么

environment diagram stores the variable names defined and the values they’ve been binded to so that you can look up easily.
环境图表保存了已定义的变量名以及它们所连接的数值,以便程序员查找它们。

Environment Diagrams are a visual tool to keep track of bindings and state of a computer program.
环境图表是一种记录(变量名)连接情况以及计算机程序状态的可视化工具。

Environment Diagrams 案例

示例代码

from operator import add
def kit(a):def foo(b):return a * tac(a, b)return footac = add
result1 = kit(2)(3)


Environment Diagram 示例,使用 http://www.pythontutor.com/visualize.html#mode=edit 制作

Environment Diagram 解析


为什么要使用 Environment Diagram ?示例代码将多个名称连接到同一个对象上,同时使用了函数的嵌套定义。此时很容易混淆不同名称、对象之间的对应关系。而在使用 Environment Diagram 之后,上述关系变得非常清晰。
例如,在计算return a * tac(a, b)时,b是函数的形参,容易找到;a是从哪来的呢?从 Environment Diagram 中可以看到,foo()的双亲帧(parent frame)是f1,而f1中有名字a,连接到数值2上,因此可以确定a=2

CS 61A Environment Diagrams 学习笔记相关推荐

  1. 漏洞payload 靶机_【CS学习笔记】5、如何建立Payload处理器

    这一小节学起来感觉有些吃力,里面很多概念理解的不是很清楚,如果有大佬看到描述错误的地方欢迎留言指正,避免误导他人. 再次声明,这只是我的个人学习笔记,不要当成教程去看,建议想学习CS的小伙伴可以看看A ...

  2. cs客户端 实时权限_【CS学习笔记】7、SMBbean的作用

    0x00 SMB Beacon 简介 SMB Beacon 使用命名管道通过一个父 Beacon 进行通信.这种对等通信对同一台主机上的 Beacon 和跨网络的 Beacon 都有效.Windows ...

  3. 零基础转码:CS 61A自学笔记——week 1.1

    课程链接: CS 61A Spring 2022 CS 61A Fall 2021 以Fall 2021为主,Spring 2022为辅,零基础打开一看,真的好懵逼,字也太多了,一个一个捋吧.Piaz ...

  4. 【CS学习笔记】17、登录验证的难点

    0x00 前言 如果当前账号权限被系统认为是本地管理员权限,那么就可以执行很多管理员才能做的事,接下来就来看一下这样的一个过程是如何工作的,其中会涉及到以下要点: 1.Access Token 登录令 ...

  5. 【CS学习笔记】19、代码执行的方式

    0x00 前言 实现代码执行的四个步骤: 1.与目标建立信任关系 2.复制可执行文件到目标上 3.在目标上运行可执行文件 4.实现对目标的控制 以上是根据视频教程中直译的结果,个人感觉其实这一节叫横向 ...

  6. 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建...

    作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...

  7. LaTeX学习笔记(中文版使用)

    下面是一篇优秀的LaTeX学习笔记, 转自: http://vincentme.org/post/LaTeX_study_note.php LaTeX LaTeX(LATEX,音译"拉泰赫& ...

  8. 学习笔记:SpringCloud 微服务技术栈_实用篇①_基础知识

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  9. Unity-shader学习笔记(七)

    文章目录 Unity-shader学习笔记(七) 15 更复杂的光照 15.1 Unity的渲染路径 15.1.1 前向渲染路径 15.1.1.1 前向渲染路径的原理 15.1.1.2 Unity中的 ...

  10. 群体学习Swarm Leaning学习笔记

    群体学习 笔记 背景 如今,在一些疾病的诊断领域,AI的准确率已经超过了医生.靠谱的诊断结果背后,是建立海量数据集上的机器学习.但实际上,可用于训练的医疗数据非常分散,想要把世界各地的数据都集合起来又 ...

最新文章

  1. 在智能家庭用OpenCV实现人员检测
  2. c#接口和抽象类的区别
  3. 设计模式的理解: 适配器模式 Adapter
  4. OpenCV直方图均衡Histogram Equalization
  5. HDU 5938 Four Operations 【字符串处理,枚举,把数字字符串变为数值】
  6. WordPress 已过时?创始人与新架构拥护者开战
  7. centos php日志分析,记录一下CentOS7安装GoAccess日志分析工具
  8. 函数 的 重载 和 函数 模版
  9. 浅析C++开发工程师的薪资与发展
  10. 3D应用开发中的欧拉角和旋转矩阵
  11. sql server 2005 使用Log Explorer查看和恢复数据
  12. DM9000驱动分析之发送
  13. 【科普贴】MDIO接口详解
  14. 英语基础语法(五)-形容词、副词
  15. html 图片循环轮播,如何在Web端实现动画切换效果一致的无限循环图片轮播?
  16. 电脑网络——QQ、微信可以登录,浏览器打不开的解决方法
  17. 跟同事关系再好,这3种话宁烂肚里也别张嘴,莫让福运悄悄离开你
  18. 安装oracle 11g,先决条件检查失败问题解决方法
  19. ABeam Insight | 女性科技系列(2):全球女性科技(FemTech)现状
  20. 【raft】学习五:日志结构raftLog

热门文章

  1. 37种传感器(四)之光敏电阻传感器模块+Stduino NanoUNO
  2. 软件工程——总体设计与详细设计
  3. 软件工程设计图(总体设计、概要设计、详细设计)
  4. Locust接口压力测试
  5. IDM插件chrome无法加载
  6. 操作指南|JumpServer用户权限体系的使用实践
  7. 深入理解 JVM 第三版
  8. LeetCode笔记
  9. 周志华-深度森林(Deep Forest)
  10. 在excel上画交换机面板_如何在Excel中创建面板图