人人社区!

Python 堆区和栈区

python 在定义变量时,变量名和变量值都是需要存储的,分别对应内存的两块区域:堆区和栈区

堆区:变量值存放的区域

栈区:变量名和值内存地址关联的区域


定义变量 x=10 ,y=20

Python 堆区和栈区

变量


变量是程序中用于标识数据的一个符号或名字,它并不直接存储数据,而是指向(或引用)实际存储数据

的内存地址。

在Python解释器内部,变量名通常保存在栈(Stack)中。栈是一种后进先出(LIFO)的数据结构,

用于高效地管理函数调用时的局部变量、返回地址等信息。

当创建一个变量时,Python会在当前作用域(如全局作用域或函数局部作用域)的栈空间内为该变量分配

一个名称,并将其关联到相应的对象。


对象及值

Python中的对象(即变量所引用的实际数据)通常存储在堆(Heap)中。

堆是一种动态分配内存的区域,相比于栈,其大小更为灵活且无固定上限。

堆用于存储需要大量、不固定大小内存空间的数据结构,如大数组、复杂的数据类型(如类实例)、

以及那些生命周期可能跨越多个函数调用或作用域的对象。


回复
回复 楼主
顶部