堆栈图 – Python
作者:互联网
我想完全理解“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.我们是否应该在堆栈图中包含它,或者图表是否正确?
谢谢
解决方法:
根据Stack Diagram的定义:
Each function is represented by a frame. A frame is a box with the
name of a function beside it and the parameters and variables of the
function inside it.
这意味着您还需要考虑函数中定义的变量.最好将y的值保持为y = 3而不是y = x 2 – 因为我们跟踪变量值并且通常不关心如何获得这些值
要回答第二个查询 – 从描述中可以看出堆栈图主要用于跟踪变量到函数名称的映射.但是,请记住,当开发语言处理器和运行时时,它们确实对所提出的堆栈图原理进行了必要的添加,这使得处理变量或识别错误变得容易或有效.
希望这篇文章澄清你的怀疑
标签:python,computer-science,python-2-7,coding-style,diagram 来源: https://codeday.me/bug/20190629/1325983.html