【发布时间】:2010-03-01 02:18:56
【问题描述】:
在 C# 中,值类型(例如:int、float 等)存储在堆栈中。方法参数也可以存储在堆栈中。然而,大多数其他东西都存储在堆上。这包括列表、对象等。
我想知道,CPython 在内部做同样的事情吗?它在栈上存储什么,在堆上放什么?
【问题讨论】:
-
我假设您的意思是 “然而,大多数其他内容都存储在 堆 上。”
-
您可能想说“CPython”,而不是“Python”。 Python是一种语言;只要实现符合 Python 要求的语义,它就没有意见应该将对象存储在哪里。 CPython 是大多数人使用的用 C 语言编写的 Python 的实现。下面来自 John Feminella 和 Alex Martelli 的答案都与 CPython 有关。 PyPy、Jython 和 IronPython 对存储对象的位置有自己的看法;遗憾的是我对他们一无所知。
-
@BlueRaja - 谢谢,很好。