我试图完全理解“堆栈图”原理。有人可以检查我是否正确吗?
到目前为止,我的理解是堆栈图用于跟踪代码中函数中使用的变量。
但是我不确定是否在某个函数中创建了一个新变量,它是否应该包含在堆栈图中。
例如,我们应该在堆栈图中包含变量“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。我们应该将它包含在堆栈图中还是该图正确的方式?
谢谢