堆栈图 - Python

时间:2013-08-07 01:34:53

标签: python python-2.7 coding-style computer-science diagram

我想完全理解"Stack Diagram" principle。有人可以检查我是否正确吗?

到目前为止,我的理解是堆栈图使用来跟踪代码中函数中使用的变量

但是我不确定是否在某个函数中创建了一个新变量,如果它包含在堆栈图中。

例如,我们应该在堆栈图中包含变量“p”吗?让我们说:

def g(y):
    p = A(y, y)  
    print z, p
    return p

def A(x, y):
    x = x + 1
    return x * y

x = 1
y = x + 2

我想我的堆栈看起来应该是这样的:

<module>  x --> 1
          y --> 3   (Should I put 3 or x + 2 here)

fct g     y --> 3 (should I stop here or should I include a line for the variable p)


fct A     x --> 4
          y --> 3 

最后一个问题是:我们是否应该提及有关其他功能的功能。与函数A的情况一样,它返回x * y = 12.我们是否应该在堆栈图中包含它,或者图表是否正确?

由于

1 个答案:

答案 0 :(得分:3)

根据堆栈图的定义:

  

每个函数由一个框架表示。框架是一个框架   旁边的函数名称以及函数的参数和变量   在里面发挥作用。

这意味着您还需要考虑在函数中定义的变量。最好将 y 的值保持为y=3而不是y=x+2 - 因为我们跟踪变量值并且通常不关心如何获得这些值

要回答您的第二个查询 - 从描述中可以看出堆栈图主要用于跟踪变量到函数名称的映射。但是,请记住,当开发语言处理器和运行时时,它们确实对所提出的堆栈图原理进行了必要的补充,这使得处理变量或识别错误变得容易或有效。

希望这篇文章澄清你的怀疑