Python 中的“堆栈”是什么?是CPython的C栈吗?我读到Python 堆栈帧是在堆中分配的。但我认为堆栈的目标是……堆栈堆栈帧。那么堆栈做什么呢?
Python的栈帧是在堆上分配的。但它们相互链接形成一个堆栈。当函数a
调用函数b
, the b
堆栈帧指向a
堆栈帧作为下一帧(从技术上讲,a
is the f_back
的属性b
frame.)
在堆上分配堆栈帧使生成器成为可能:当生成器生成一个值时,不是丢弃其堆栈帧,而是简单地将其从当前堆栈帧的链接列表中删除,并保存到一边。然后,当生成器需要恢复时,其堆栈帧将重新链接到堆栈中,并继续执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)