【发布时间】:2023-03-04 14:27:01
【问题描述】:
我正在学习 python 并试图了解堆栈在 python 中是如何工作的。我有些疑惑。我知道堆栈是如何工作的,并且我已经阅读了很多关于它的文章和教程。我在stackoverflow上阅读了很多帖子,它们都很好,但我仍然有些疑问。
到目前为止,我已经阅读了堆栈存储和函数的返回值。它由 LIFO 负责人工作。
只有堆栈的第一个值会返回并存储在顶部。
所以我的问题是 - 假设有四个变量:
a = 9
b = 2
c = 13
d = 4
它们按函数调用值的顺序存储在堆栈中,例如:
sum = a + d
sum = b + c
a = 9
d = 4
b = 2
c = 13
他们会从上到下返回。现在我的困惑是-如果任何操作需要使用d和c,而堆栈从顶部返回值,堆栈将如何获取值d和c,只要它们在堆栈中间. stack会先返回a再返回d吗??
这就是混乱。
【问题讨论】:
-
访问堆栈变量时不涉及
pushing 或poping。 -
我很困惑,你的意思是“堆栈”作为数据结构还是“堆栈”作为内存?如果是第一种情况 - 如果您需要的值不是来自顶部,请不要使用它,如果是后者,则变量位于堆叠函数的“虚拟”堆内,所以没关系
-
你为什么用 [stack-overflow] 标记这个?
-
你试过在解释器中运行一些代码吗?这不是它的工作原理。