python - python是基于堆栈的是什么意思?

标签 python

我已经阅读了 CPython 是如何基于堆栈的。这是什么意思?当我使用 dis 模块时,我看到像 LOAD_FAST 等操作,其中值放在堆栈上。但我读到 python 中的所有值都是对象,因此进入堆。我想我在这里混淆了两件不同的事情。我还读到有一种叫做 stackless python 的东西。有人可以澄清一下吗?

最佳答案

最流行的 Python 解释器 CPython 可以看作是基于堆栈的虚拟机。这意味着 python 代码是为具有 stack architecture 的假想(虚拟)计算机编译的。 .

另一方面就是这个虚拟机是如何实现的。它显然不是一个硬件(处理器制造商试图添加对某些虚拟机的支持,例如 JVM,are usually not successful)。因此,这个堆栈机器是由用 C 编写的程序模拟的,它是 CPython 解释器的一部分。

关于栈和堆是如何共存的,现在应该很清楚了——虚拟机和栈,都是放在堆内存中的。使用 LOAD_FAST 从虚拟机的角度将对象放置在堆栈的顶部,并且从操作系统的角度相同的指令将对象放置在堆中观点

关于python - python是基于堆栈的是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34149013/

相关文章:

python - 将C套接字程序转换为python

python - 如何在 python 中选择多个列

python - 输入 0 与层 conv2d_121 : expected ndim=4, 发现 ndim=5 不兼容

Python decimal.Decimal 精度与 wolfram alpha 不匹配

python - 如何在python中为绘图添加填充?

python - 将 "Q12019"对象转换为 datetime64

php - 使用行中的 xpath 提取表格单元格文本内容以供使用?

与 dict() 相比,Python OrderedDict 溅射

python - 从主代码到多个线程(有套接字,如果这很重要的话)进行通信

python - 从数组 python 创建数据框