2013-07-20 109 views
5

在C++中,局部变量存储在堆栈中,而由new运算符创建的数据存储在堆中。那么,Python中的变量呢?他们在哪里储存?从Python documentationPython中的变量存储在哪里?

+0

相关:http://stackoverflow.com/questions/14546178/does-python-have-a-stack-heap-and-how-is-memory-managed –

+0

相关:http://stackoverflow.com/questions/2353552/cpython-internal-what-is-stored-on-the-stack-and-hep –

+0

@AshwiniChaudhary非常感谢! – injoy

回答

5

复制:在Python

内存管理涉及包含所有Python对象和数据结构私有堆。 Python内存管理器在内部确保对这个私有堆的管理。 Python内存管理器具有不同的组件,可处理各种动态存储管理方面的问题,如共享,分割,预分配或缓存。

+0

这是误导 - 尽管从C代码的角度来看,python的东西通常在堆上,python仍然有它自己的调用堆栈。 – Marcin

+2

@Marcin:这是来自官方的Python文档,对其他链接的问题也给出了相同的答案。唯一需要补充的是,这是CPython特有的,无论如何它是最广泛使用的Python实现。 – dkar

+0

仅仅因为它来自官方文件,并不意味着它适用于这个问题。首先,这个问题是关于变量的;其次文档是关于在C编程时CPython解释器的样子。 – Marcin