Python有静态对象,堆栈对象和堆对象吗?

时间:2017-09-15 22:12:08

标签: python python-3.x programming-languages computer-science storage-duration

来自编程语言语用学,由Scott

  

对象生命周期通常对应于三个主体之一   存储分配机制,用于管理对象的空间:

     
      
  1. 静态对象被赋予一个绝对地址,该地址在整个程序的执行过程中保留。

  2.   
  3. 堆栈对象以后进先出顺序分配和释放,通常与子程序调用和返回一起使用。

  4.   
  5. 可以在任意时间分配和释放堆对象。它们需要更通用(且昂贵)的存储管理   算法
  6.   

C编程语言包含静态对象,堆栈对象和堆对象。

Python是否具有静态对象,堆栈对象和堆对象?

我看到in another post CPython在堆上分配所有对象。这是否意味着Python中的所有对象都是堆对象?

但Python也有静态方法。 PLP书中的Python静态对象中是静态方法吗?

感谢。

1 个答案:

答案 0 :(得分:2)

Python对象主要是堆对象 - 但是, CPython 中有一些特殊的PyObject单例值在C中是 static ;虽然这是一个实现细节。例如,通常的内置类型具有静态存储持续时间。我不知道堆栈(Python)对象。

静态存储持续时间,如此处所理解,与静态方法完全无关。