首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

零基础Python到全栈-变量的内存管理

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

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

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

这个操作就叫内存管理。

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

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

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230123A02X8F00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券