CS 61A Environment Diagrams 学习笔记

本文参考了以下资料:
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 foo
    
tac = add
result1 = kit(2)(3)

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

Environment Diagram 解析

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值