零基础Python 变量的内存管理机制

上节课我们说了,定义变量其实就是在内存里开辟了一个内存空间,然后把内存空间的一个地址捆绑给了一个变量名,通过这个变量名我们就可以找到这个对应的值在哪。现在我们要知道,定义变量首要占用内存空间的,但内存空间大小是有限的。

这时候就是涉及到一个问题,你申请了内存空间要用没关系,但是如果你不用了的话,一定要记得把内存空间给释放出来,不然的话你申请了如果还不用,那你就在白白浪费内存资源,导致计算机内存可能就被占满了。

就有那种很垃圾的程序,它占用一堆内存空间又不释放,最后又把内存空间给撑爆了,这就叫做内存溢出。为了防止这种问题,咱们写程序的时候,你定义变量申请内存空间,一定要记住,用了以后要把内存空间给释放出来。

这个操作就叫内存管理。

我们在写代码的时候,考虑内存空管理是一件非常痛苦的事情。因为这个东西实在是太繁琐了,一旦稍微处理不当,你的程序就有可能要崩溃,于是Python推出了一个内存管理机制,称之为垃圾回收机制。

那什么叫做垃圾呢,举个例子;之前我们定义了一个name叫做于谦,我们通过这个变量名就可以找到它,也就是这个小房间里捆绑着一个门牌号(变量名),这个变量值是可以顺着变量名引用到的,这个时候还不叫垃圾。一旦小房间里没有捆绑着变量名,你是不是就找不到这个变量值了。现在找不到值了,就成为了一个垃圾。

垃圾回收机制就是用来回收这种没有关联任何变量名的值,这就涉及到一个概念,叫做引用计数,顾名思义就是统计引用的个数嘛。

就以于谦这个值为例,它的引用计数,也就是这个内存空间身上捆绑了几个变量名,现在捆绑了一个name,还有a、b这三个,那么它的引用计数就是3.

反之,如果name、a、b这三个都和于谦解除了捆绑关系,那么它的引用计数就位0,也就是垃圾。

未经允许不得转载:445IT之家 » 零基础Python 变量的内存管理机制

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏